
window = global;
document = {
    createElement:function(x){
        if(x=='div'){
            return {}
        }
    }
}
!function(e) {

    var t = {};
    function n(r) {
        if (t[r])
            return t[r].exports;
        var i = t[r] = {
            exports: {}
        };
        return e[r].call(i.exports, i, i.exports, n),
        i.exports
    }
    n.g = function() {
        if ("object" == typeof globalThis)
            return globalThis;
        try {
            return this || new Function("return this")()
        } catch (t) {
            if ("object" == typeof window)
                return window
        }
    }()
    window.nnn = n

}({
    454: function(e) {
        e.exports = function() {
            "use strict";
            var e = {
                update: null,
                begin: null,
                loopBegin: null,
                changeBegin: null,
                change: null,
                changeComplete: null,
                loopComplete: null,
                complete: null,
                loop: 1,
                direction: "normal",
                autoplay: !0,
                timelineOffset: 0
            }
              , t = {
                duration: 1e3,
                delay: 0,
                endDelay: 0,
                easing: "easeOutElastic(1, .5)",
                round: 0
            }
              , n = ["translateX", "translateY", "translateZ", "rotate", "rotateX", "rotateY", "rotateZ", "scale", "scaleX", "scaleY", "scaleZ", "skew", "skewX", "skewY", "perspective"]
              , r = {
                CSS: {},
                springs: {}
            };
            function i(e, t, n) {
                return Math.min(Math.max(e, t), n)
            }
            function o(e, t) {
                return e.indexOf(t) > -1
            }
            function a(e, t) {
                return e.apply(null, t)
            }
            var s = {
                arr: function(e) {
                    return Array.isArray(e)
                },
                obj: function(e) {
                    return o(Object.prototype.toString.call(e), "Object")
                },
                pth: function(e) {
                    return s.obj(e) && e.hasOwnProperty("totalLength")
                },
                svg: function(e) {
                    return e instanceof SVGElement
                },
                inp: function(e) {
                    return e instanceof HTMLInputElement
                },
                dom: function(e) {
                    return e.nodeType || s.svg(e)
                },
                str: function(e) {
                    return "string" == typeof e
                },
                fnc: function(e) {
                    return "function" == typeof e
                },
                und: function(e) {
                    return void 0 === e
                },
                hex: function(e) {
                    return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)
                },
                rgb: function(e) {
                    return /^rgb/.test(e)
                },
                hsl: function(e) {
                    return /^hsl/.test(e)
                },
                col: function(e) {
                    return s.hex(e) || s.rgb(e) || s.hsl(e)
                },
                key: function(n) {
                    return !e.hasOwnProperty(n) && !t.hasOwnProperty(n) && "targets" !== n && "keyframes" !== n
                }
            };
            function l(e) {
                var t = /\(([^)]+)\)/.exec(e);
                return t ? t[1].split(",").map((function(e) {
                    return parseFloat(e)
                }
                )) : []
            }
            function u(e, t) {
                var n = l(e)
                  , o = i(s.und(n[0]) ? 1 : n[0], .1, 100)
                  , a = i(s.und(n[1]) ? 100 : n[1], .1, 100)
                  , u = i(s.und(n[2]) ? 10 : n[2], .1, 100)
                  , c = i(s.und(n[3]) ? 0 : n[3], .1, 100)
                  , f = Math.sqrt(a / o)
                  , d = u / (2 * Math.sqrt(a * o))
                  , p = d < 1 ? f * Math.sqrt(1 - d * d) : 0
                  , h = d < 1 ? (d * f - c) / p : -c + f;
                function m(e) {
                    var n = t ? t * e / 1e3 : e;
                    return n = d < 1 ? Math.exp(-n * d * f) * (1 * Math.cos(p * n) + h * Math.sin(p * n)) : (1 + h * n) * Math.exp(-n * f),
                    0 === e || 1 === e ? e : 1 - n
                }
                return t ? m : function() {
                    var t = r.springs[e];
                    if (t)
                        return t;
                    for (var n = 0, i = 0; ; )
                        if (1 === m(n += 1 / 6)) {
                            if (++i >= 16)
                                break
                        } else
                            i = 0;
                    var o = n * (1 / 6) * 1e3;
                    return r.springs[e] = o,
                    o
                }
            }
            function c(e, t) {
                void 0 === e && (e = 1),
                void 0 === t && (t = .5);
                var n = i(e, 1, 10)
                  , r = i(t, .1, 2);
                return function(e) {
                    return 0 === e || 1 === e ? e : -n * Math.pow(2, 10 * (e - 1)) * Math.sin((e - 1 - r / (2 * Math.PI) * Math.asin(1 / n)) * (2 * Math.PI) / r)
                }
            }
            function f(e) {
                return void 0 === e && (e = 10),
                function(t) {
                    return Math.round(t * e) * (1 / e)
                }
            }
            var d = function() {
                var e = .1;
                function t(e, t) {
                    return 1 - 3 * t + 3 * e
                }
                function n(e, t) {
                    return 3 * t - 6 * e
                }
                function r(e) {
                    return 3 * e
                }
                function i(e, i, o) {
                    return ((t(i, o) * e + n(i, o)) * e + r(i)) * e
                }
                function o(e, i, o) {
                    return 3 * t(i, o) * e * e + 2 * n(i, o) * e + r(i)
                }
                return function(t, n, r, a) {
                    if (0 <= t && t <= 1 && 0 <= r && r <= 1) {
                        var s = new Float32Array(11);
                        if (t !== n || r !== a)
                            for (var l = 0; l < 11; ++l)
                                s[l] = i(l * e, t, r);
                        return function(e) {
                            return t === n && r === a || 0 === e || 1 === e ? e : i(u(e), n, a)
                        }
                    }
                    function u(n) {
                        for (var a = 0, l = 1; 10 !== l && s[l] <= n; ++l)
                            a += e;
                        var u = a + (n - s[--l]) / (s[l + 1] - s[l]) * e
                          , c = o(u, t, r);
                        return c >= .001 ? function(e, t, n, r) {
                            for (var a = 0; a < 4; ++a) {
                                var s = o(t, n, r);
                                if (0 === s)
                                    return t;
                                t -= (i(t, n, r) - e) / s
                            }
                            return t
                        }(n, u, t, r) : 0 === c ? u : function(e, t, n, r, o) {
                            for (var a, s, l = 0; (a = i(s = t + (n - t) / 2, r, o) - e) > 0 ? n = s : t = s,
                            Math.abs(a) > 1e-7 && ++l < 10; )
                                ;
                            return s
                        }(n, a, a + e, t, r)
                    }
                }
            }()
              , p = function() {
                var e = ["Quad", "Cubic", "Quart", "Quint", "Sine", "Expo", "Circ", "Back", "Elastic"]
                  , t = {
                    In: [[.55, .085, .68, .53], [.55, .055, .675, .19], [.895, .03, .685, .22], [.755, .05, .855, .06], [.47, 0, .745, .715], [.95, .05, .795, .035], [.6, .04, .98, .335], [.6, -.28, .735, .045], c],
                    Out: [[.25, .46, .45, .94], [.215, .61, .355, 1], [.165, .84, .44, 1], [.23, 1, .32, 1], [.39, .575, .565, 1], [.19, 1, .22, 1], [.075, .82, .165, 1], [.175, .885, .32, 1.275], function(e, t) {
                        return function(n) {
                            return 1 - c(e, t)(1 - n)
                        }
                    }
                    ],
                    InOut: [[.455, .03, .515, .955], [.645, .045, .355, 1], [.77, 0, .175, 1], [.86, 0, .07, 1], [.445, .05, .55, .95], [1, 0, 0, 1], [.785, .135, .15, .86], [.68, -.55, .265, 1.55], function(e, t) {
                        return function(n) {
                            return n < .5 ? c(e, t)(2 * n) / 2 : 1 - c(e, t)(-2 * n + 2) / 2
                        }
                    }
                    ]
                }
                  , n = {
                    linear: [.25, .25, .75, .75]
                }
                  , r = function(r) {
                    t[r].forEach((function(t, i) {
                        n["ease" + r + e[i]] = t
                    }
                    ))
                };
                for (var i in t)
                    r(i);
                return n
            }();
            function h(e, t) {
                if (s.fnc(e))
                    return e;
                var n = e.split("(")[0]
                  , r = p[n]
                  , i = l(e);
                switch (n) {
                case "spring":
                    return u(e, t);
                case "cubicBezier":
                    return a(d, i);
                case "steps":
                    return a(f, i);
                default:
                    return s.fnc(r) ? a(r, i) : a(d, r)
                }
            }
            function m(e) {
                try {
                    return document.querySelectorAll(e)
                } catch (e) {
                    return
                }
            }
            function g(e, t) {
                for (var n = e.length, r = arguments.length >= 2 ? arguments[1] : void 0, i = [], o = 0; o < n; o++)
                    if (o in e) {
                        var a = e[o];
                        t.call(r, a, o, e) && i.push(a)
                    }
                return i
            }
            function v(e) {
                return e.reduce((function(e, t) {
                    return e.concat(s.arr(t) ? v(t) : t)
                }
                ), [])
            }
            function y(e) {
                return s.arr(e) ? e : (s.str(e) && (e = m(e) || e),
                e instanceof NodeList || e instanceof HTMLCollection ? [].slice.call(e) : [e])
            }
            function b(e, t) {
                return e.some((function(e) {
                    return e === t
                }
                ))
            }
            function x(e) {
                var t = {};
                for (var n in e)
                    t[n] = e[n];
                return t
            }
            function w(e, t) {
                var n = x(e);
                for (var r in e)
                    n[r] = t.hasOwnProperty(r) ? t[r] : e[r];
                return n
            }
            function T(e, t) {
                var n = x(e);
                for (var r in t)
                    n[r] = s.und(e[r]) ? t[r] : e[r];
                return n
            }
            function k(e) {
                var t = /([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(e);
                if (t)
                    return t[2]
            }
            function C(e, t) {
                return s.fnc(e) ? e(t.target, t.id, t.total) : e
            }
            function E(e, t) {
                return e.getAttribute(t)
            }
            function S(e, t, n) {
                if (b([n, "deg", "rad", "turn"], k(t)))
                    return t;
                var i = r.CSS[t + n];
                if (!s.und(i))
                    return i;
                var o = document.createElement(e.tagName)
                  , a = e.parentNode && e.parentNode !== document ? e.parentNode : document.body;
                a.appendChild(o),
                o.style.position = "absolute",
                o.style.width = 100 + n;
                var l = 100 / o.offsetWidth;
                a.removeChild(o);
                var u = l * parseFloat(t);
                return r.CSS[t + n] = u,
                u
            }
            function A(e, t, n) {
                if (t in e.style) {
                    var r = t.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()
                      , i = e.style[t] || getComputedStyle(e).getPropertyValue(r) || "0";
                    return n ? S(e, i, n) : i
                }
            }
            function D(e, t) {
                return s.dom(e) && !s.inp(e) && (E(e, t) || s.svg(e) && e[t]) ? "attribute" : s.dom(e) && b(n, t) ? "transform" : s.dom(e) && "transform" !== t && A(e, t) ? "css" : null != e[t] ? "object" : void 0
            }
            function N(e) {
                if (s.dom(e)) {
                    for (var t, n = e.style.transform || "", r = /(\w+)\(([^)]*)\)/g, i = new Map; t = r.exec(n); )
                        i.set(t[1], t[2]);
                    return i
                }
            }
            function j(e, t, n, r) {
                switch (D(e, t)) {
                case "transform":
                    return function(e, t, n, r) {
                        var i, a = o(t, "scale") ? 1 : 0 + (o(i = t, "translate") || "perspective" === i ? "px" : o(i, "rotate") || o(i, "skew") ? "deg" : void 0), s = N(e).get(t) || a;
                        return n && (n.transforms.list.set(t, s),
                        n.transforms.last = t),
                        r ? S(e, s, r) : s
                    }(e, t, r, n);
                case "css":
                    return A(e, t, n);
                case "attribute":
                    return E(e, t);
                default:
                    return e[t] || 0
                }
            }
            function L(e, t) {
                var n = /^(\*=|\+=|-=)/.exec(e);
                if (!n)
                    return e;
                var r = k(e) || 0
                  , i = parseFloat(t)
                  , o = parseFloat(e.replace(n[0], ""));
                switch (n[0][0]) {
                case "+":
                    return i + o + r;
                case "-":
                    return i - o + r;
                case "*":
                    return i * o + r
                }
            }
            function O(e, t) {
                if (s.col(e))
                    return function(e) {
                        return s.rgb(e) ? (n = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(t = e)) ? "rgba(" + n[1] + ",1)" : t : s.hex(e) ? (r = e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (function(e, t, n, r) {
                            return t + t + n + n + r + r
                        }
                        )),
                        i = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(r),
                        "rgba(" + parseInt(i[1], 16) + "," + parseInt(i[2], 16) + "," + parseInt(i[3], 16) + ",1)") : s.hsl(e) ? function(e) {
                            var t, n, r, i = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(e) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(e), o = parseInt(i[1], 10) / 360, a = parseInt(i[2], 10) / 100, s = parseInt(i[3], 10) / 100, l = i[4] || 1;
                            function u(e, t, n) {
                                return n < 0 && (n += 1),
                                n > 1 && (n -= 1),
                                n < 1 / 6 ? e + 6 * (t - e) * n : n < .5 ? t : n < 2 / 3 ? e + (t - e) * (2 / 3 - n) * 6 : e
                            }
                            if (0 == a)
                                t = n = r = s;
                            else {
                                var c = s < .5 ? s * (1 + a) : s + a - s * a
                                  , f = 2 * s - c;
                                t = u(f, c, o + 1 / 3),
                                n = u(f, c, o),
                                r = u(f, c, o - 1 / 3)
                            }
                            return "rgba(" + 255 * t + "," + 255 * n + "," + 255 * r + "," + l + ")"
                        }(e) : void 0;
                        var t, n, r, i
                    }(e);
                var n = k(e)
                  , r = n ? e.substr(0, e.length - n.length) : e;
                return t && !/\s/g.test(e) ? r + t : r
            }
            function q(e, t) {
                return Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2))
            }
            function $(e) {
                for (var t, n = e.points, r = 0, i = 0; i < n.numberOfItems; i++) {
                    var o = n.getItem(i);
                    i > 0 && (r += q(t, o)),
                    t = o
                }
                return r
            }
            function I(e) {
                if (e.getTotalLength)
                    return e.getTotalLength();
                switch (e.tagName.toLowerCase()) {
                case "circle":
                    return o = e,
                    2 * Math.PI * E(o, "r");
                case "rect":
                    return 2 * E(i = e, "width") + 2 * E(i, "height");
                case "line":
                    return q({
                        x: E(r = e, "x1"),
                        y: E(r, "y1")
                    }, {
                        x: E(r, "x2"),
                        y: E(r, "y2")
                    });
                case "polyline":
                    return $(e);
                case "polygon":
                    return n = (t = e).points,
                    $(t) + q(n.getItem(n.numberOfItems - 1), n.getItem(0))
                }
                var t, n, r, i, o
            }
            function M(e, t) {
                var n = t || {}
                  , r = n.el || function(e) {
                    for (var t = e.parentNode; s.svg(t) && (t = t.parentNode,
                    s.svg(t.parentNode)); )
                        ;
                    return t
                }(e)
                  , i = r.getBoundingClientRect()
                  , o = E(r, "viewBox")
                  , a = i.width
                  , l = i.height
                  , u = n.viewBox || (o ? o.split(" ") : [0, 0, a, l]);
                return {
                    el: r,
                    viewBox: u,
                    x: u[0] / 1,
                    y: u[1] / 1,
                    w: a / u[2],
                    h: l / u[3]
                }
            }
            function P(e, t) {
                function n(n) {
                    void 0 === n && (n = 0);
                    var r = t + n >= 1 ? t + n : 0;
                    return e.el.getPointAtLength(r)
                }
                var r = M(e.el, e.svg)
                  , i = n()
                  , o = n(-1)
                  , a = n(1);
                switch (e.property) {
                case "x":
                    return (i.x - r.x) * r.w;
                case "y":
                    return (i.y - r.y) * r.h;
                case "angle":
                    return 180 * Math.atan2(a.y - o.y, a.x - o.x) / Math.PI
                }
            }
            function H(e, t) {
                var n = /-?\d*\.?\d+/g
                  , r = O(s.pth(e) ? e.totalLength : e, t) + "";
                return {
                    original: r,
                    numbers: r.match(n) ? r.match(n).map(Number) : [0],
                    strings: s.str(e) || t ? r.split(n) : []
                }
            }
            function R(e) {
                return g(e ? v(s.arr(e) ? e.map(y) : y(e)) : [], (function(e, t, n) {
                    return n.indexOf(e) === t
                }
                ))
            }
            function F(e) {
                var t = R(e);
                return t.map((function(e, n) {
                    return {
                        target: e,
                        id: n,
                        total: t.length,
                        transforms: {
                            list: N(e)
                        }
                    }
                }
                ))
            }
            function _(e, t) {
                var n = x(t);
                if (/^spring/.test(n.easing) && (n.duration = u(n.easing)),
                s.arr(e)) {
                    var r = e.length;
                    2 !== r || s.obj(e[0]) ? s.fnc(t.duration) || (n.duration = t.duration / r) : e = {
                        value: e
                    }
                }
                var i = s.arr(e) ? e : [e];
                return i.map((function(e, n) {
                    var r = s.obj(e) && !s.pth(e) ? e : {
                        value: e
                    };
                    return s.und(r.delay) && (r.delay = n ? 0 : t.delay),
                    s.und(r.endDelay) && (r.endDelay = n === i.length - 1 ? t.endDelay : 0),
                    r
                }
                )).map((function(e) {
                    return T(e, n)
                }
                ))
            }
            function z(e, t) {
                var n = []
                  , r = t.keyframes;
                for (var i in r && (t = T(function(e) {
                    for (var t = g(v(e.map((function(e) {
                        return Object.keys(e)
                    }
                    ))), (function(e) {
                        return s.key(e)
                    }
                    )).reduce((function(e, t) {
                        return e.indexOf(t) < 0 && e.push(t),
                        e
                    }
                    ), []), n = {}, r = function(r) {
                        var i = t[r];
                        n[i] = e.map((function(e) {
                            var t = {};
                            for (var n in e)
                                s.key(n) ? n == i && (t.value = e[n]) : t[n] = e[n];
                            return t
                        }
                        ))
                    }, i = 0; i < t.length; i++)
                        r(i);
                    return n
                }(r), t)),
                t)
                    s.key(i) && n.push({
                        name: i,
                        tweens: _(t[i], e)
                    });
                return n
            }
            var B = {
                css: function(e, t, n) {
                    return e.style[t] = n
                },
                attribute: function(e, t, n) {
                    return e.setAttribute(t, n)
                },
                object: function(e, t, n) {
                    return e[t] = n
                },
                transform: function(e, t, n, r, i) {
                    if (r.list.set(t, n),
                    t === r.last || i) {
                        var o = "";
                        r.list.forEach((function(e, t) {
                            o += t + "(" + e + ") "
                        }
                        )),
                        e.style.transform = o
                    }
                }
            };
            function W(e, t) {
                F(e).forEach((function(e) {
                    for (var n in t) {
                        var r = C(t[n], e)
                          , i = e.target
                          , o = k(r)
                          , a = j(i, n, o, e)
                          , s = L(O(r, o || k(a)), a)
                          , l = D(i, n);
                        B[l](i, n, s, e.transforms, !0)
                    }
                }
                ))
            }
            function U(e, t) {
                return g(v(e.map((function(e) {
                    return t.map((function(t) {
                        return function(e, t) {
                            var n = D(e.target, t.name);
                            if (n) {
                                var r = function(e, t) {
                                    var n;
                                    return e.tweens.map((function(r) {
                                        var i = function(e, t) {
                                            var n = {};
                                            for (var r in e) {
                                                var i = C(e[r], t);
                                                s.arr(i) && 1 === (i = i.map((function(e) {
                                                    return C(e, t)
                                                }
                                                ))).length && (i = i[0]),
                                                n[r] = i
                                            }
                                            return n.duration = parseFloat(n.duration),
                                            n.delay = parseFloat(n.delay),
                                            n
                                        }(r, t)
                                          , o = i.value
                                          , a = s.arr(o) ? o[1] : o
                                          , l = k(a)
                                          , u = j(t.target, e.name, l, t)
                                          , c = n ? n.to.original : u
                                          , f = s.arr(o) ? o[0] : c
                                          , d = k(f) || k(u)
                                          , p = l || d;
                                        return s.und(a) && (a = c),
                                        i.from = H(f, p),
                                        i.to = H(L(a, f), p),
                                        i.start = n ? n.end : 0,
                                        i.end = i.start + i.delay + i.duration + i.endDelay,
                                        i.easing = h(i.easing, i.duration),
                                        i.isPath = s.pth(o),
                                        i.isColor = s.col(i.from.original),
                                        i.isColor && (i.round = 1),
                                        n = i,
                                        i
                                    }
                                    ))
                                }(t, e)
                                  , i = r[r.length - 1];
                                return {
                                    type: n,
                                    property: t.name,
                                    animatable: e,
                                    tweens: r,
                                    duration: i.end,
                                    delay: r[0].delay,
                                    endDelay: i.endDelay
                                }
                            }
                        }(e, t)
                    }
                    ))
                }
                ))), (function(e) {
                    return !s.und(e)
                }
                ))
            }
            function X(e, t) {
                var n = e.length
                  , r = function(e) {
                    return e.timelineOffset ? e.timelineOffset : 0
                }
                  , i = {};
                return i.duration = n ? Math.max.apply(Math, e.map((function(e) {
                    return r(e) + e.duration
                }
                ))) : t.duration,
                i.delay = n ? Math.min.apply(Math, e.map((function(e) {
                    return r(e) + e.delay
                }
                ))) : t.delay,
                i.endDelay = n ? i.duration - Math.max.apply(Math, e.map((function(e) {
                    return r(e) + e.duration - e.endDelay
                }
                ))) : t.endDelay,
                i
            }
            var V, Q = 0, Y = [], G = [], J = function() {
                function e() {
                    V = requestAnimationFrame(t)
                }
                function t(t) {
                    var n = Y.length;
                    if (n) {
                        for (var r = 0; r < n; ) {
                            var i = Y[r];
                            if (i.paused) {
                                var o = Y.indexOf(i);
                                o > -1 && (Y.splice(o, 1),
                                n = Y.length)
                            } else
                                i.tick(t);
                            r++
                        }
                        e()
                    } else
                        V = cancelAnimationFrame(V)
                }
                return e
            }();
            function K(n) {
                void 0 === n && (n = {});
                var r, o = 0, a = 0, s = 0, l = 0, u = null;
                function c(e) {
                    var t = window.Promise && new Promise((function(e) {
                        return u = e
                    }
                    ));
                    return e.finished = t,
                    t
                }
                var f, d, p, h, m, v, y, b, x = (d = w(e, f = n),
                h = z(p = w(t, f), f),
                y = X(v = U(m = F(f.targets), h), p),
                b = Q,
                Q++,
                T(d, {
                    id: b,
                    children: [],
                    animatables: m,
                    animations: v,
                    duration: y.duration,
                    delay: y.delay,
                    endDelay: y.endDelay
                }));
                function k() {
                    var e = x.direction;
                    "alternate" !== e && (x.direction = "normal" !== e ? "normal" : "reverse"),
                    x.reversed = !x.reversed,
                    r.forEach((function(e) {
                        return e.reversed = x.reversed
                    }
                    ))
                }
                function C(e) {
                    return x.reversed ? x.duration - e : e
                }
                function E() {
                    o = 0,
                    a = C(x.currentTime) * (1 / K.speed)
                }
                function S(e, t) {
                    t && t.seek(e - t.timelineOffset)
                }
                function A(e) {
                    for (var t = 0, n = x.animations, r = n.length; t < r; ) {
                        var o = n[t]
                          , a = o.animatable
                          , s = o.tweens
                          , l = s.length - 1
                          , u = s[l];
                        l && (u = g(s, (function(t) {
                            return e < t.end
                        }
                        ))[0] || u);
                        for (var c = i(e - u.start - u.delay, 0, u.duration) / u.duration, f = isNaN(c) ? 1 : u.easing(c), d = u.to.strings, p = u.round, h = [], m = u.to.numbers.length, v = void 0, y = 0; y < m; y++) {
                            var b = void 0
                              , w = u.to.numbers[y]
                              , T = u.from.numbers[y] || 0;
                            b = u.isPath ? P(u.value, f * w) : T + f * (w - T),
                            p && (u.isColor && y > 2 || (b = Math.round(b * p) / p)),
                            h.push(b)
                        }
                        var k = d.length;
                        if (k) {
                            v = d[0];
                            for (var C = 0; C < k; C++) {
                                d[C];
                                var E = d[C + 1]
                                  , S = h[C];
                                isNaN(S) || (v += E ? S + E : S + " ")
                            }
                        } else
                            v = h[0];
                        B[o.type](a.target, o.property, v, a.transforms),
                        o.currentValue = v,
                        t++
                    }
                }
                function D(e) {
                    x[e] && !x.passThrough && x[e](x)
                }
                function N(e) {
                    var t = x.duration
                      , n = x.delay
                      , f = t - x.endDelay
                      , d = C(e);
                    x.progress = i(d / t * 100, 0, 100),
                    x.reversePlayback = d < x.currentTime,
                    r && function(e) {
                        if (x.reversePlayback)
                            for (var t = l; t--; )
                                S(e, r[t]);
                        else
                            for (var n = 0; n < l; n++)
                                S(e, r[n])
                    }(d),
                    !x.began && x.currentTime > 0 && (x.began = !0,
                    D("begin"),
                    D("loopBegin")),
                    d <= n && 0 !== x.currentTime && A(0),
                    (d >= f && x.currentTime !== t || !t) && A(t),
                    d > n && d < f ? (x.changeBegan || (x.changeBegan = !0,
                    x.changeCompleted = !1,
                    D("changeBegin")),
                    D("change"),
                    A(d)) : x.changeBegan && (x.changeCompleted = !0,
                    x.changeBegan = !1,
                    D("changeComplete")),
                    x.currentTime = i(d, 0, t),
                    x.began && D("update"),
                    e >= t && (a = 0,
                    x.remaining && !0 !== x.remaining && x.remaining--,
                    x.remaining ? (o = s,
                    D("loopComplete"),
                    D("loopBegin"),
                    "alternate" === x.direction && k()) : (x.paused = !0,
                    x.completed || (x.completed = !0,
                    D("loopComplete"),
                    D("complete"),
                    !x.passThrough && "Promise"in window && (u(),
                    c(x)))))
                }
                return c(x),
                x.reset = function() {
                    var e = x.direction;
                    x.passThrough = !1,
                    x.currentTime = 0,
                    x.progress = 0,
                    x.paused = !0,
                    x.began = !1,
                    x.changeBegan = !1,
                    x.completed = !1,
                    x.changeCompleted = !1,
                    x.reversePlayback = !1,
                    x.reversed = "reverse" === e,
                    x.remaining = x.loop,
                    r = x.children;
                    for (var t = l = r.length; t--; )
                        x.children[t].reset();
                    (x.reversed && !0 !== x.loop || "alternate" === e && 1 === x.loop) && x.remaining++,
                    A(0)
                }
                ,
                x.set = function(e, t) {
                    return W(e, t),
                    x
                }
                ,
                x.tick = function(e) {
                    s = e,
                    o || (o = s),
                    N((s + (a - o)) * K.speed)
                }
                ,
                x.seek = function(e) {
                    N(C(e))
                }
                ,
                x.pause = function() {
                    x.paused = !0,
                    E()
                }
                ,
                x.play = function() {
                    x.paused && (x.completed && x.reset(),
                    x.paused = !1,
                    Y.push(x),
                    E(),
                    V || J())
                }
                ,
                x.reverse = function() {
                    k(),
                    E()
                }
                ,
                x.restart = function() {
                    x.reset(),
                    x.play()
                }
                ,
                x.reset(),
                x.autoplay && x.play(),
                x
            }
            function Z(e, t) {
                for (var n = t.length; n--; )
                    b(e, t[n].animatable.target) && t.splice(n, 1)
            }
            return "undefined" != typeof document && document.addEventListener("visibilitychange", (function() {
                document.hidden ? (Y.forEach((function(e) {
                    return e.pause()
                }
                )),
                G = Y.slice(0),
                Y = []) : G.forEach((function(e) {
                    return e.play()
                }
                ))
            }
            )),
            K.version = "3.0.1",
            K.speed = 1,
            K.running = Y,
            K.remove = function(e) {
                for (var t = R(e), n = Y.length; n--; ) {
                    var r = Y[n]
                      , i = r.animations
                      , o = r.children;
                    Z(t, i);
                    for (var a = o.length; a--; ) {
                        var s = o[a]
                          , l = s.animations;
                        Z(t, l),
                        l.length || s.children.length || o.splice(a, 1)
                    }
                    i.length || o.length || r.pause()
                }
            }
            ,
            K.get = j,
            K.set = W,
            K.convertPx = S,
            K.path = function(e, t) {
                var n = s.str(e) ? m(e)[0] : e
                  , r = t || 100;
                return function(e) {
                    return {
                        property: e,
                        el: n,
                        svg: M(n),
                        totalLength: I(n) * (r / 100)
                    }
                }
            }
            ,
            K.setDashoffset = function(e) {
                var t = I(e);
                return e.setAttribute("stroke-dasharray", t),
                t
            }
            ,
            K.stagger = function(e, t) {
                void 0 === t && (t = {});
                var n = t.direction || "normal"
                  , r = t.easing ? h(t.easing) : null
                  , i = t.grid
                  , o = t.axis
                  , a = t.from || 0
                  , l = "first" === a
                  , u = "center" === a
                  , c = "last" === a
                  , f = s.arr(e)
                  , d = f ? parseFloat(e[0]) : parseFloat(e)
                  , p = f ? parseFloat(e[1]) : 0
                  , m = k(f ? e[1] : e) || 0
                  , g = t.start || 0 + (f ? d : 0)
                  , v = []
                  , y = 0;
                return function(e, t, s) {
                    if (l && (a = 0),
                    u && (a = (s - 1) / 2),
                    c && (a = s - 1),
                    !v.length) {
                        for (var h = 0; h < s; h++) {
                            if (i) {
                                var b = u ? (i[0] - 1) / 2 : a % i[0]
                                  , x = u ? (i[1] - 1) / 2 : Math.floor(a / i[0])
                                  , w = b - h % i[0]
                                  , T = x - Math.floor(h / i[0])
                                  , k = Math.sqrt(w * w + T * T);
                                "x" === o && (k = -w),
                                "y" === o && (k = -T),
                                v.push(k)
                            } else
                                v.push(Math.abs(a - h));
                            y = Math.max.apply(Math, v)
                        }
                        r && (v = v.map((function(e) {
                            return r(e / y) * y
                        }
                        ))),
                        "reverse" === n && (v = v.map((function(e) {
                            return o ? e < 0 ? -1 * e : -e : Math.abs(y - e)
                        }
                        )))
                    }
                    return g + (f ? (p - d) / y : d) * (Math.round(100 * v[t]) / 100) + m
                }
            }
            ,
            K.timeline = function(e) {
                void 0 === e && (e = {});
                var n = K(e);
                return n.duration = 0,
                n.add = function(r, i) {
                    var o = Y.indexOf(n)
                      , a = n.children;
                    function l(e) {
                        e.passThrough = !0
                    }
                    o > -1 && Y.splice(o, 1);
                    for (var u = 0; u < a.length; u++)
                        l(a[u]);
                    var c = T(r, w(t, e));
                    c.targets = c.targets || e.targets;
                    var f = n.duration;
                    c.autoplay = !1,
                    c.direction = n.direction,
                    c.timelineOffset = s.und(i) ? f : L(i, f),
                    l(n),
                    n.seek(c.timelineOffset);
                    var d = K(c);
                    l(d),
                    a.push(d);
                    var p = X(a, e);
                    return n.delay = p.delay,
                    n.endDelay = p.endDelay,
                    n.duration = p.duration,
                    n.seek(0),
                    n.reset(),
                    n.autoplay && n.play(),
                    n
                }
                ,
                n
            }
            ,
            K.easing = h,
            K.penner = p,
            K.random = function(e, t) {
                return Math.floor(Math.random() * (t - e + 1)) + e
            }
            ,
            K
        }()
    },
    772: (e,t,n)=>{
        var r, i, o;
        if (function(a) {
            "use strict";
            i = [n(755)],
            void 0 === (o = "function" == typeof (r = function(e) {
                var t = {};
                t.fileapi = void 0 !== e("<input type='file'/>").get(0).files,
                t.formdata = void 0 !== window.FormData;
                var n = !!e.fn.prop;
                function r(t) {
                    var n = t.data;
                    t.isDefaultPrevented() || (t.preventDefault(),
                    e(t.target).ajaxSubmit(n))
                }
                function i(t) {
                    var n = t.target
                      , r = e(n);
                    if (!r.is("[type=submit],[type=image]")) {
                        var i = r.closest("[type=submit]");
                        if (0 === i.length)
                            return;
                        n = i[0]
                    }
                    var o = this;
                    if (o.clk = n,
                    "image" == n.type)
                        if (void 0 !== t.offsetX)
                            o.clk_x = t.offsetX,
                            o.clk_y = t.offsetY;
                        else if ("function" == typeof e.fn.offset) {
                            var a = r.offset();
                            o.clk_x = t.pageX - a.left,
                            o.clk_y = t.pageY - a.top
                        } else
                            o.clk_x = t.pageX - n.offsetLeft,
                            o.clk_y = t.pageY - n.offsetTop;
                    setTimeout((function() {
                        o.clk = o.clk_x = o.clk_y = null
                    }
                    ), 100)
                }
                function o() {
                    if (e.fn.ajaxSubmit.debug) {
                        var t = "[jquery.form] " + Array.prototype.join.call(arguments, "");
                        window.console && window.console.log ? window.console.log(t) : window.opera && window.opera.postError && window.opera.postError(t)
                    }
                }
                e.fn.attr2 = function() {
                    if (!n)
                        return this.attr.apply(this, arguments);
                    var e = this.prop.apply(this, arguments);
                    return e && e.jquery || "string" == typeof e ? e : this.attr.apply(this, arguments)
                }
                ,
                e.fn.ajaxSubmit = function(r) {
                    if (!this.length)
                        return o("ajaxSubmit: skipping submit process - no element selected"),
                        this;
                    var i, a, s, l = this;
                    "function" == typeof r ? r = {
                        success: r
                    } : void 0 === r && (r = {}),
                    i = r.type || this.attr2("method"),
                    (s = (s = "string" == typeof (a = r.url || this.attr2("action")) ? e.trim(a) : "") || window.location.href || "") && (s = (s.match(/^([^#]+)/) || [])[1]),
                    r = e.extend(!0, {
                        url: s,
                        success: e.ajaxSettings.success,
                        type: i || e.ajaxSettings.type,
                        iframeSrc: /^https/i.test(window.location.href || "") ? "javascript:false" : "about:blank"
                    }, r);
                    var u = {};
                    if (this.trigger("form-pre-serialize", [this, r, u]),
                    u.veto)
                        return o("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),
                        this;
                    if (r.beforeSerialize && !1 === r.beforeSerialize(this, r))
                        return o("ajaxSubmit: submit aborted via beforeSerialize callback"),
                        this;
                    var c = r.traditional;
                    void 0 === c && (c = e.ajaxSettings.traditional);
                    var f, d = [], p = this.formToArray(r.semantic, d);
                    if (r.data && (r.extraData = r.data,
                    f = e.param(r.data, c)),
                    r.beforeSubmit && !1 === r.beforeSubmit(p, this, r))
                        return o("ajaxSubmit: submit aborted via beforeSubmit callback"),
                        this;
                    if (this.trigger("form-submit-validate", [p, this, r, u]),
                    u.veto)
                        return o("ajaxSubmit: submit vetoed via form-submit-validate trigger"),
                        this;
                    var h = e.param(p, c);
                    f && (h = h ? h + "&" + f : f),
                    "GET" == r.type.toUpperCase() ? (r.url += (r.url.indexOf("?") >= 0 ? "&" : "?") + h,
                    r.data = null) : r.data = h;
                    var m = [];
                    if (r.resetForm && m.push((function() {
                        l.resetForm()
                    }
                    )),
                    r.clearForm && m.push((function() {
                        l.clearForm(r.includeHidden)
                    }
                    )),
                    !r.dataType && r.target) {
                        var g = r.success || function() {}
                        ;
                        m.push((function(t) {
                            var n = r.replaceTarget ? "replaceWith" : "html";
                            e(r.target)[n](t).each(g, arguments)
                        }
                        ))
                    } else
                        r.success && m.push(r.success);
                    if (r.success = function(e, t, n) {
                        for (var i = r.context || this, o = 0, a = m.length; o < a; o++)
                            m[o].apply(i, [e, t, n || l, l])
                    }
                    ,
                    r.error) {
                        var v = r.error;
                        r.error = function(e, t, n) {
                            var i = r.context || this;
                            v.apply(i, [e, t, n, l])
                        }
                    }
                    if (r.complete) {
                        var y = r.complete;
                        r.complete = function(e, t) {
                            var n = r.context || this;
                            y.apply(n, [e, t, l])
                        }
                    }
                    var b = e("input[type=file]:enabled", this).filter((function() {
                        return "" !== e(this).val()
                    }
                    )).length > 0
                      , x = "multipart/form-data"
                      , w = l.attr("enctype") == x || l.attr("encoding") == x
                      , T = t.fileapi && t.formdata;
                    o("fileAPI :" + T);
                    var k, C = (b || w) && !T;
                    !1 !== r.iframe && (r.iframe || C) ? r.closeKeepAlive ? e.get(r.closeKeepAlive, (function() {
                        k = S(p)
                    }
                    )) : k = S(p) : k = (b || w) && T ? function(t) {
                        for (var n = new FormData, o = 0; o < t.length; o++)
                            n.append(t[o].name, t[o].value);
                        if (r.extraData) {
                            var a = function(t) {
                                var n, i, o = e.param(t, r.traditional).split("&"), a = o.length, s = [];
                                for (n = 0; n < a; n++)
                                    o[n] = o[n].replace(/\+/g, " "),
                                    i = o[n].split("="),
                                    s.push([decodeURIComponent(i[0]), decodeURIComponent(i[1])]);
                                return s
                            }(r.extraData);
                            for (o = 0; o < a.length; o++)
                                a[o] && n.append(a[o][0], a[o][1])
                        }
                        r.data = null;
                        var s = e.extend(!0, {}, e.ajaxSettings, r, {
                            contentType: !1,
                            processData: !1,
                            cache: !1,
                            type: i || "POST"
                        });
                        r.uploadProgress && (s.xhr = function() {
                            var t = e.ajaxSettings.xhr();
                            return t.upload && t.upload.addEventListener("progress", (function(e) {
                                var t = 0
                                  , n = e.loaded || e.position
                                  , i = e.total;
                                e.lengthComputable && (t = Math.ceil(n / i * 100)),
                                r.uploadProgress(e, n, i, t)
                            }
                            ), !1),
                            t
                        }
                        ),
                        s.data = null;
                        var l = s.beforeSend;
                        return s.beforeSend = function(e, t) {
                            r.formData ? t.data = r.formData : t.data = n,
                            l && l.call(this, e, t)
                        }
                        ,
                        e.ajax(s)
                    }(p) : e.ajax(r),
                    l.removeData("jqxhr").data("jqxhr", k);
                    for (var E = 0; E < d.length; E++)
                        d[E] = null;
                    return this.trigger("form-submit-notify", [this, r]),
                    this;
                    function S(t) {
                        var a, s, u, c, f, p, h, m, g, v, y, b, x = l[0], w = e.Deferred();
                        if (w.abort = function(e) {
                            m.abort(e)
                        }
                        ,
                        t)
                            for (s = 0; s < d.length; s++)
                                a = e(d[s]),
                                n ? a.prop("disabled", !1) : a.removeAttr("disabled");
                        if ((u = e.extend(!0, {}, e.ajaxSettings, r)).context = u.context || u,
                        f = "jqFormIO" + (new Date).getTime(),
                        u.iframeTarget ? (v = (p = e(u.iframeTarget)).attr2("name")) ? f = v : p.attr2("name", f) : (p = e('<iframe name="' + f + '" src="' + u.iframeSrc + '" />')).css({
                            position: "absolute",
                            top: "-1000px",
                            left: "-1000px"
                        }),
                        h = p[0],
                        m = {
                            aborted: 0,
                            responseText: null,
                            responseXML: null,
                            status: 0,
                            statusText: "n/a",
                            getAllResponseHeaders: function() {},
                            getResponseHeader: function() {},
                            setRequestHeader: function() {},
                            abort: function(t) {
                                var n = "timeout" === t ? "timeout" : "aborted";
                                o("aborting upload... " + n),
                                this.aborted = 1;
                                try {
                                    h.contentWindow.document.execCommand && h.contentWindow.document.execCommand("Stop")
                                } catch (e) {}
                                p.attr("src", u.iframeSrc),
                                m.error = n,
                                u.error && u.error.call(u.context, m, n, t),
                                c && e.event.trigger("ajaxError", [m, u, n]),
                                u.complete && u.complete.call(u.context, m, n)
                            }
                        },
                        (c = u.global) && 0 == e.active++ && e.event.trigger("ajaxStart"),
                        c && e.event.trigger("ajaxSend", [m, u]),
                        u.beforeSend && !1 === u.beforeSend.call(u.context, m, u))
                            return u.global && e.active--,
                            w.reject(),
                            w;
                        if (m.aborted)
                            return w.reject(),
                            w;
                        (g = x.clk) && (v = g.name) && !g.disabled && (u.extraData = u.extraData || {},
                        u.extraData[v] = g.value,
                        "image" == g.type && (u.extraData[v + ".x"] = x.clk_x,
                        u.extraData[v + ".y"] = x.clk_y));
                        function T(e) {
                            var t = null;
                            try {
                                e.contentWindow && (t = e.contentWindow.document)
                            } catch (e) {
                                o("cannot get iframe.contentWindow document: " + e)
                            }
                            if (t)
                                return t;
                            try {
                                t = e.contentDocument ? e.contentDocument : e.document
                            } catch (n) {
                                o("cannot get iframe.contentDocument: " + n),
                                t = e.document
                            }
                            return t
                        }
                        var k = e("meta[name=csrf-token]").attr("content")
                          , C = e("meta[name=csrf-param]").attr("content");
                        function E() {
                            var t = l.attr2("target")
                              , n = l.attr2("action")
                              , r = l.attr("enctype") || l.attr("encoding") || "multipart/form-data";
                            x.setAttribute("target", f),
                            i && !/post/i.test(i) || x.setAttribute("method", "POST"),
                            n != u.url && x.setAttribute("action", u.url),
                            u.skipEncodingOverride || i && !/post/i.test(i) || l.attr({
                                encoding: "multipart/form-data",
                                enctype: "multipart/form-data"
                            }),
                            u.timeout && (b = setTimeout((function() {
                                y = !0,
                                j(1)
                            }
                            ), u.timeout));
                            var a = [];
                            try {
                                if (u.extraData)
                                    for (var s in u.extraData)
                                        u.extraData.hasOwnProperty(s) && (e.isPlainObject(u.extraData[s]) && u.extraData[s].hasOwnProperty("name") && u.extraData[s].hasOwnProperty("value") ? a.push(e('<input type="hidden" name="' + u.extraData[s].name + '">').val(u.extraData[s].value).appendTo(x)[0]) : a.push(e('<input type="hidden" name="' + s + '">').val(u.extraData[s]).appendTo(x)[0]));
                                u.iframeTarget || p.appendTo("body"),
                                h.attachEvent ? h.attachEvent("onload", j) : h.addEventListener("load", j, !1),
                                setTimeout((function e() {
                                    try {
                                        var t = T(h).readyState;
                                        o("state = " + t),
                                        t && "uninitialized" == t.toLowerCase() && setTimeout(e, 50)
                                    } catch (e) {
                                        o("Server abort: ", e, " (", e.name, ")"),
                                        j(2),
                                        b && clearTimeout(b),
                                        b = void 0
                                    }
                                }
                                ), 15);
                                try {
                                    x.submit()
                                } catch (e) {
                                    document.createElement("form").submit.apply(x)
                                }
                            } finally {
                                x.setAttribute("action", n),
                                x.setAttribute("enctype", r),
                                t ? x.setAttribute("target", t) : l.removeAttr("target"),
                                e(a).remove()
                            }
                        }
                        C && k && (u.extraData = u.extraData || {},
                        u.extraData[C] = k),
                        u.forceSync ? E() : setTimeout(E, 10);
                        var S, A, D, N = 50;
                        function j(t) {
                            if (!m.aborted && !D) {
                                if ((A = T(h)) || (o("cannot access response document"),
                                t = 2),
                                1 === t && m)
                                    return m.abort("timeout"),
                                    void w.reject(m, "timeout");
                                if (2 == t && m)
                                    return m.abort("server abort"),
                                    void w.reject(m, "error", "server abort");
                                if (A && A.location.href != u.iframeSrc || y) {
                                    h.detachEvent ? h.detachEvent("onload", j) : h.removeEventListener("load", j, !1);
                                    var n, r = "success";
                                    try {
                                        if (y)
                                            throw "timeout";
                                        var i = "xml" == u.dataType || A.XMLDocument || e.isXMLDoc(A);
                                        if (o("isXml=" + i),
                                        !i && window.opera && (null === A.body || !A.body.innerHTML) && --N)
                                            return o("requeing onLoad callback, DOM not available"),
                                            void setTimeout(j, 250);
                                        var a = A.body ? A.body : A.documentElement;
                                        m.responseText = a ? a.innerHTML : null,
                                        m.responseXML = A.XMLDocument ? A.XMLDocument : A,
                                        i && (u.dataType = "xml"),
                                        m.getResponseHeader = function(e) {
                                            return {
                                                "content-type": u.dataType
                                            }[e.toLowerCase()]
                                        }
                                        ,
                                        a && (m.status = Number(a.getAttribute("status")) || m.status,
                                        m.statusText = a.getAttribute("statusText") || m.statusText);
                                        var s = (u.dataType || "").toLowerCase()
                                          , l = /(json|script|text)/.test(s);
                                        if (l || u.textarea) {
                                            var f = A.getElementsByTagName("textarea")[0];
                                            if (f)
                                                m.responseText = f.value,
                                                m.status = Number(f.getAttribute("status")) || m.status,
                                                m.statusText = f.getAttribute("statusText") || m.statusText;
                                            else if (l) {
                                                var d = A.getElementsByTagName("pre")[0]
                                                  , g = A.getElementsByTagName("body")[0];
                                                d ? m.responseText = d.textContent ? d.textContent : d.innerText : g && (m.responseText = g.textContent ? g.textContent : g.innerText)
                                            }
                                        } else
                                            "xml" == s && !m.responseXML && m.responseText && (m.responseXML = L(m.responseText));
                                        try {
                                            S = q(m, s, u)
                                        } catch (e) {
                                            r = "parsererror",
                                            m.error = n = e || r
                                        }
                                    } catch (e) {
                                        o("error caught: ", e),
                                        r = "error",
                                        m.error = n = e || r
                                    }
                                    m.aborted && (o("upload aborted"),
                                    r = null),
                                    m.status && (r = m.status >= 200 && m.status < 300 || 304 === m.status ? "success" : "error"),
                                    "success" === r ? (u.success && u.success.call(u.context, S, "success", m),
                                    w.resolve(m.responseText, "success", m),
                                    c && e.event.trigger("ajaxSuccess", [m, u])) : r && (void 0 === n && (n = m.statusText),
                                    u.error && u.error.call(u.context, m, r, n),
                                    w.reject(m, "error", n),
                                    c && e.event.trigger("ajaxError", [m, u, n])),
                                    c && e.event.trigger("ajaxComplete", [m, u]),
                                    c && !--e.active && e.event.trigger("ajaxStop"),
                                    u.complete && u.complete.call(u.context, m, r),
                                    D = !0,
                                    u.timeout && clearTimeout(b),
                                    setTimeout((function() {
                                        u.iframeTarget ? p.attr("src", u.iframeSrc) : p.remove(),
                                        m.responseXML = null
                                    }
                                    ), 100)
                                }
                            }
                        }
                        var L = e.parseXML || function(e, t) {
                            return window.ActiveXObject ? ((t = new ActiveXObject("Microsoft.XMLDOM")).async = "false",
                            t.loadXML(e)) : t = (new DOMParser).parseFromString(e, "text/xml"),
                            t && t.documentElement && "parsererror" != t.documentElement.nodeName ? t : null
                        }
                          , O = e.parseJSON || function(e) {
                            return window.eval("(" + e + ")")
                        }
                          , q = function(t, n, r) {
                            var i = t.getResponseHeader("content-type") || ""
                              , o = "xml" === n || !n && i.indexOf("xml") >= 0
                              , a = o ? t.responseXML : t.responseText;
                            return o && "parsererror" === a.documentElement.nodeName && e.error && e.error("parsererror"),
                            r && r.dataFilter && (a = r.dataFilter(a, n)),
                            "string" == typeof a && ("json" === n || !n && i.indexOf("json") >= 0 ? a = O(a) : ("script" === n || !n && i.indexOf("javascript") >= 0) && e.globalEval(a)),
                            a
                        };
                        return w
                    }
                }
                ,
                e.fn.ajaxForm = function(t) {
                    if ((t = t || {}).delegation = t.delegation && e.isFunction(e.fn.on),
                    !t.delegation && 0 === this.length) {
                        var n = {
                            s: this.selector,
                            c: this.context
                        };
                        return !e.isReady && n.s ? (o("DOM not ready, queuing ajaxForm"),
                        e((function() {
                            e(n.s, n.c).ajaxForm(t)
                        }
                        )),
                        this) : (o("terminating; zero elements found by selector" + (e.isReady ? "" : " (DOM not ready)")),
                        this)
                    }
                    return t.delegation ? (e(document).off("submit.form-plugin", this.selector, r).off("click.form-plugin", this.selector, i).on("submit.form-plugin", this.selector, t, r).on("click.form-plugin", this.selector, t, i),
                    this) : this.ajaxFormUnbind().bind("submit.form-plugin", t, r).bind("click.form-plugin", t, i)
                }
                ,
                e.fn.ajaxFormUnbind = function() {
                    return this.unbind("submit.form-plugin click.form-plugin")
                }
                ,
                e.fn.formToArray = function(n, r) {
                    var i = [];
                    if (0 === this.length)
                        return i;
                    var o, a, s, l, u, c, f, d, p = this[0], h = this.attr("id"), m = n ? p.getElementsByTagName("*") : p.elements;
                    if (m && !/MSIE [678]/.test(navigator.userAgent) && (m = e(m).get()),
                    h && (o = e(':input[form="' + h + '"]').get()).length && (m = (m || []).concat(o)),
                    !m || !m.length)
                        return i;
                    for (a = 0,
                    f = m.length; a < f; a++)
                        if ((l = (c = m[a]).name) && !c.disabled)
                            if (n && p.clk && "image" == c.type)
                                p.clk == c && (i.push({
                                    name: l,
                                    value: e(c).val(),
                                    type: c.type
                                }),
                                i.push({
                                    name: l + ".x",
                                    value: p.clk_x
                                }, {
                                    name: l + ".y",
                                    value: p.clk_y
                                }));
                            else if ((u = e.fieldValue(c, !0)) && u.constructor == Array)
                                for (r && r.push(c),
                                s = 0,
                                d = u.length; s < d; s++)
                                    i.push({
                                        name: l,
                                        value: u[s]
                                    });
                            else if (t.fileapi && "file" == c.type) {
                                r && r.push(c);
                                var g = c.files;
                                if (g.length)
                                    for (s = 0; s < g.length; s++)
                                        i.push({
                                            name: l,
                                            value: g[s],
                                            type: c.type
                                        });
                                else
                                    i.push({
                                        name: l,
                                        value: "",
                                        type: c.type
                                    })
                            } else
                                null != u && (r && r.push(c),
                                i.push({
                                    name: l,
                                    value: u,
                                    type: c.type,
                                    required: c.required
                                }));
                    if (!n && p.clk) {
                        var v = e(p.clk)
                          , y = v[0];
                        (l = y.name) && !y.disabled && "image" == y.type && (i.push({
                            name: l,
                            value: v.val()
                        }),
                        i.push({
                            name: l + ".x",
                            value: p.clk_x
                        }, {
                            name: l + ".y",
                            value: p.clk_y
                        }))
                    }
                    return i
                }
                ,
                e.fn.formSerialize = function(t) {
                    return e.param(this.formToArray(t))
                }
                ,
                e.fn.fieldSerialize = function(t) {
                    var n = [];
                    return this.each((function() {
                        var r = this.name;
                        if (r) {
                            var i = e.fieldValue(this, t);
                            if (i && i.constructor == Array)
                                for (var o = 0, a = i.length; o < a; o++)
                                    n.push({
                                        name: r,
                                        value: i[o]
                                    });
                            else
                                null != i && n.push({
                                    name: this.name,
                                    value: i
                                })
                        }
                    }
                    )),
                    e.param(n)
                }
                ,
                e.fn.fieldValue = function(t) {
                    for (var n = [], r = 0, i = this.length; r < i; r++) {
                        var o = this[r]
                          , a = e.fieldValue(o, t);
                        null == a || a.constructor == Array && !a.length || (a.constructor == Array ? e.merge(n, a) : n.push(a))
                    }
                    return n
                }
                ,
                e.fieldValue = function(t, n) {
                    var r = t.name
                      , i = t.type
                      , o = t.tagName.toLowerCase();
                    if (void 0 === n && (n = !0),
                    n && (!r || t.disabled || "reset" == i || "button" == i || ("checkbox" == i || "radio" == i) && !t.checked || ("submit" == i || "image" == i) && t.form && t.form.clk != t || "select" == o && -1 == t.selectedIndex))
                        return null;
                    if ("select" == o) {
                        var a = t.selectedIndex;
                        if (a < 0)
                            return null;
                        for (var s = [], l = t.options, u = "select-one" == i, c = u ? a + 1 : l.length, f = u ? a : 0; f < c; f++) {
                            var d = l[f];
                            if (d.selected) {
                                var p = d.value;
                                if (p || (p = d.attributes && d.attributes.value && !d.attributes.value.specified ? d.text : d.value),
                                u)
                                    return p;
                                s.push(p)
                            }
                        }
                        return s
                    }
                    return e(t).val()
                }
                ,
                e.fn.clearForm = function(t) {
                    return this.each((function() {
                        e("input,select,textarea", this).clearFields(t)
                    }
                    ))
                }
                ,
                e.fn.clearFields = e.fn.clearInputs = function(t) {
                    var n = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;
                    return this.each((function() {
                        var r = this.type
                          , i = this.tagName.toLowerCase();
                        n.test(r) || "textarea" == i ? this.value = "" : "checkbox" == r || "radio" == r ? this.checked = !1 : "select" == i ? this.selectedIndex = -1 : "file" == r ? /MSIE/.test(navigator.userAgent) ? e(this).replaceWith(e(this).clone(!0)) : e(this).val("") : t && (!0 === t && /hidden/.test(r) || "string" == typeof t && e(this).is(t)) && (this.value = "")
                    }
                    ))
                }
                ,
                e.fn.resetForm = function() {
                    return this.each((function() {
                        ("function" == typeof this.reset || "object" == typeof this.reset && !this.reset.nodeType) && this.reset()
                    }
                    ))
                }
                ,
                e.fn.enable = function(e) {
                    return void 0 === e && (e = !0),
                    this.each((function() {
                        this.disabled = !e
                    }
                    ))
                }
                ,
                e.fn.selected = function(t) {
                    return void 0 === t && (t = !0),
                    this.each((function() {
                        var n = this.type;
                        if ("checkbox" == n || "radio" == n)
                            this.checked = t;
                        else if ("option" == this.tagName.toLowerCase()) {
                            var r = e(this).parent("select");
                            t && r[0] && "select-one" == r[0].type && r.find("option").selected(!1),
                            this.selected = t
                        }
                    }
                    ))
                }
                ,
                e.fn.ajaxSubmit.debug = !1
            }
            ) ? r.apply(t, i) : r) || (e.exports = o)
        }(),
        "undefined" == typeof jQuery)
            throw new Error("Bootstrap's JavaScript requires jQuery");
        !function(e) {
            "use strict";
            var t = jQuery.fn.jquery.split(" ")[0].split(".");
            if (t[0] < 2 && t[1] < 9 || 1 == t[0] && 9 == t[1] && t[2] < 1 || t[0] > 3)
                throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")
        }(),
        function(e) {
            "use strict";
            e.fn.emulateTransitionEnd = function(t) {
                var n = !1
                  , r = this;
                return e(this).one("bsTransitionEnd", (function() {
                    n = !0
                }
                )),
                setTimeout((function() {
                    n || e(r).trigger(e.support.transition.end)
                }
                ), t),
                this
            }
            ,
            e((function() {
                e.support.transition = function() {
                    var e = document.createElement("bootstrap")
                      , t = {
                        WebkitTransition: "webkitTransitionEnd",
                        MozTransition: "transitionend",
                        OTransition: "oTransitionEnd otransitionend",
                        transition: "transitionend"
                    };
                    for (var n in t)
                        if (void 0 !== e.style[n])
                            return {
                                end: t[n]
                            };
                    return !1
                }(),
                e.support.transition && (e.event.special.bsTransitionEnd = {
                    bindType: e.support.transition.end,
                    delegateType: e.support.transition.end,
                    handle: function(t) {
                        if (e(t.target).is(this))
                            return t.handleObj.handler.apply(this, arguments)
                    }
                })
            }
            ))
        }(jQuery),
        function(e) {
            "use strict";
            var t = '[data-dismiss="alert"]'
              , n = function(n) {
                e(n).on("click", t, this.close)
            };
            n.VERSION = "3.3.7",
            n.TRANSITION_DURATION = 150,
            n.prototype.close = function(t) {
                function r() {
                    a.detach().trigger("closed.bs.alert").remove()
                }
                var i = e(this)
                  , o = i.attr("data-target");
                o || (o = (o = i.attr("href")) && o.replace(/.*(?=#[^\s]*$)/, ""));
                var a = e("#" === o ? [] : o);
                t && t.preventDefault(),
                a.length || (a = i.closest(".alert")),
                a.trigger(t = e.Event("close.bs.alert")),
                t.isDefaultPrevented() || (a.removeClass("in"),
                e.support.transition && a.hasClass("fade") ? a.one("bsTransitionEnd", r).emulateTransitionEnd(n.TRANSITION_DURATION) : r())
            }
            ;
            var r = e.fn.alert;
            e.fn.alert = function(t) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.alert");
                    i || r.data("bs.alert", i = new n(this)),
                    "string" == typeof t && i[t].call(r)
                }
                ))
            }
            ,
            e.fn.alert.Constructor = n,
            e.fn.alert.noConflict = function() {
                return e.fn.alert = r,
                this
            }
            ,
            e(document).on("click.bs.alert.data-api", t, n.prototype.close)
        }(jQuery),
        function(e) {
            "use strict";
            function t(t) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.button")
                      , o = "object" == typeof t && t;
                    i || r.data("bs.button", i = new n(this,o)),
                    "toggle" == t ? i.toggle() : t && i.setState(t)
                }
                ))
            }
            var n = function(t, r) {
                this.$element = e(t),
                this.options = e.extend({}, n.DEFAULTS, r),
                this.isLoading = !1
            };
            n.VERSION = "3.3.7",
            n.DEFAULTS = {
                loadingText: "loading..."
            },
            n.prototype.setState = function(t) {
                var n = "disabled"
                  , r = this.$element
                  , i = r.is("input") ? "val" : "html"
                  , o = r.data();
                t += "Text",
                null == o.resetText && r.data("resetText", r[i]()),
                setTimeout(e.proxy((function() {
                    r[i](null == o[t] ? this.options[t] : o[t]),
                    "loadingText" == t ? (this.isLoading = !0,
                    r.addClass(n).attr(n, n).prop(n, !0)) : this.isLoading && (this.isLoading = !1,
                    r.removeClass(n).removeAttr(n).prop(n, !1))
                }
                ), this), 0)
            }
            ,
            n.prototype.toggle = function() {
                var e = !0
                  , t = this.$element.closest('[data-toggle="buttons"]');
                if (t.length) {
                    var n = this.$element.find("input");
                    "radio" == n.prop("type") ? (n.prop("checked") && (e = !1),
                    t.find(".active").removeClass("active"),
                    this.$element.addClass("active")) : "checkbox" == n.prop("type") && (n.prop("checked") !== this.$element.hasClass("active") && (e = !1),
                    this.$element.toggleClass("active")),
                    n.prop("checked", this.$element.hasClass("active")),
                    e && n.trigger("change")
                } else
                    this.$element.attr("aria-pressed", !this.$element.hasClass("active")),
                    this.$element.toggleClass("active")
            }
            ;
            var r = e.fn.button;
            e.fn.button = t,
            e.fn.button.Constructor = n,
            e.fn.button.noConflict = function() {
                return e.fn.button = r,
                this
            }
            ,
            e(document).on("click.bs.button.data-api", '[data-toggle^="button"]', (function(n) {
                var r = e(n.target).closest(".btn");
                t.call(r, "toggle"),
                e(n.target).is('input[type="radio"], input[type="checkbox"]') || (n.preventDefault(),
                r.is("input,button") ? r.trigger("focus") : r.find("input:visible,button:visible").first().trigger("focus"))
            }
            )).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', (function(t) {
                e(t.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(t.type))
            }
            ))
        }(jQuery),
        function(e) {
            "use strict";
            function t(t) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.carousel")
                      , o = e.extend({}, n.DEFAULTS, r.data(), "object" == typeof t && t)
                      , a = "string" == typeof t ? t : o.slide;
                    i || r.data("bs.carousel", i = new n(this,o)),
                    "number" == typeof t ? i.to(t) : a ? i[a]() : o.interval && i.pause().cycle()
                }
                ))
            }
            var n = function(t, n) {
                this.$element = e(t),
                this.$indicators = this.$element.find(".carousel-indicators"),
                this.options = n,
                this.paused = null,
                this.sliding = null,
                this.interval = null,
                this.$active = null,
                this.$items = null,
                this.options.keyboard && this.$element.on("keydown.bs.carousel", e.proxy(this.keydown, this)),
                "hover" == this.options.pause && !("ontouchstart"in document.documentElement) && this.$element.on("mouseenter.bs.carousel", e.proxy(this.pause, this)).on("mouseleave.bs.carousel", e.proxy(this.cycle, this))
            };
            n.VERSION = "3.3.7",
            n.TRANSITION_DURATION = 600,
            n.DEFAULTS = {
                interval: 5e3,
                pause: "hover",
                wrap: !0,
                keyboard: !0
            },
            n.prototype.keydown = function(e) {
                if (!/input|textarea/i.test(e.target.tagName)) {
                    switch (e.which) {
                    case 37:
                        this.prev();
                        break;
                    case 39:
                        this.next();
                        break;
                    default:
                        return
                    }
                    e.preventDefault()
                }
            }
            ,
            n.prototype.cycle = function(t) {
                return t || (this.paused = !1),
                this.interval && clearInterval(this.interval),
                this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)),
                this
            }
            ,
            n.prototype.getItemIndex = function(e) {
                return this.$items = e.parent().children(".item"),
                this.$items.index(e || this.$active)
            }
            ,
            n.prototype.getItemForDirection = function(e, t) {
                var n = this.getItemIndex(t);
                if (("prev" == e && 0 === n || "next" == e && n == this.$items.length - 1) && !this.options.wrap)
                    return t;
                var r = (n + ("prev" == e ? -1 : 1)) % this.$items.length;
                return this.$items.eq(r)
            }
            ,
            n.prototype.to = function(e) {
                var t = this
                  , n = this.getItemIndex(this.$active = this.$element.find(".item.active"));
                if (!(e > this.$items.length - 1 || e < 0))
                    return this.sliding ? this.$element.one("slid.bs.carousel", (function() {
                        t.to(e)
                    }
                    )) : n == e ? this.pause().cycle() : this.slide(e > n ? "next" : "prev", this.$items.eq(e))
            }
            ,
            n.prototype.pause = function(t) {
                return t || (this.paused = !0),
                this.$element.find(".next, .prev").length && e.support.transition && (this.$element.trigger(e.support.transition.end),
                this.cycle(!0)),
                this.interval = clearInterval(this.interval),
                this
            }
            ,
            n.prototype.next = function() {
                if (!this.sliding)
                    return this.slide("next")
            }
            ,
            n.prototype.prev = function() {
                if (!this.sliding)
                    return this.slide("prev")
            }
            ,
            n.prototype.slide = function(t, r) {
                var i = this.$element.find(".item.active")
                  , o = r || this.getItemForDirection(t, i)
                  , a = this.interval
                  , s = "next" == t ? "left" : "right"
                  , l = this;
                if (o.hasClass("active"))
                    return this.sliding = !1;
                var u = o[0]
                  , c = e.Event("slide.bs.carousel", {
                    relatedTarget: u,
                    direction: s
                });
                if (this.$element.trigger(c),
                !c.isDefaultPrevented()) {
                    if (this.sliding = !0,
                    a && this.pause(),
                    this.$indicators.length) {
                        this.$indicators.find(".active").removeClass("active");
                        var f = e(this.$indicators.children()[this.getItemIndex(o)]);
                        f && f.addClass("active")
                    }
                    var d = e.Event("slid.bs.carousel", {
                        relatedTarget: u,
                        direction: s
                    });
                    return e.support.transition && this.$element.hasClass("slide") ? (o.addClass(t),
                    o[0].offsetWidth,
                    i.addClass(s),
                    o.addClass(s),
                    i.one("bsTransitionEnd", (function() {
                        o.removeClass([t, s].join(" ")).addClass("active"),
                        i.removeClass(["active", s].join(" ")),
                        l.sliding = !1,
                        setTimeout((function() {
                            l.$element.trigger(d)
                        }
                        ), 0)
                    }
                    )).emulateTransitionEnd(n.TRANSITION_DURATION)) : (i.removeClass("active"),
                    o.addClass("active"),
                    this.sliding = !1,
                    this.$element.trigger(d)),
                    a && this.cycle(),
                    this
                }
            }
            ;
            var r = e.fn.carousel;
            e.fn.carousel = t,
            e.fn.carousel.Constructor = n,
            e.fn.carousel.noConflict = function() {
                return e.fn.carousel = r,
                this
            }
            ;
            var i = function(n) {
                var r, i = e(this), o = e(i.attr("data-target") || (r = i.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, ""));
                if (o.hasClass("carousel")) {
                    var a = e.extend({}, o.data(), i.data())
                      , s = i.attr("data-slide-to");
                    s && (a.interval = !1),
                    t.call(o, a),
                    s && o.data("bs.carousel").to(s),
                    n.preventDefault()
                }
            };
            e(document).on("click.bs.carousel.data-api", "[data-slide]", i).on("click.bs.carousel.data-api", "[data-slide-to]", i),
            e(window).on("load", (function() {
                e('[data-ride="carousel"]').each((function() {
                    var n = e(this);
                    t.call(n, n.data())
                }
                ))
            }
            ))
        }(jQuery),
        function(e) {
            "use strict";
            function t(t) {
                var n, r = t.attr("data-target") || (n = t.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, "");
                return e(r)
            }
            function n(t) {
                return this.each((function() {
                    var n = e(this)
                      , i = n.data("bs.collapse")
                      , o = e.extend({}, r.DEFAULTS, n.data(), "object" == typeof t && t);
                    !i && o.toggle && /show|hide/.test(t) && (o.toggle = !1),
                    i || n.data("bs.collapse", i = new r(this,o)),
                    "string" == typeof t && i[t]()
                }
                ))
            }
            var r = function(t, n) {
                this.$element = e(t),
                this.options = e.extend({}, r.DEFAULTS, n),
                this.$trigger = e('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]'),
                this.transitioning = null,
                this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger),
                this.options.toggle && this.toggle()
            };
            r.VERSION = "3.3.7",
            r.TRANSITION_DURATION = 350,
            r.DEFAULTS = {
                toggle: !0
            },
            r.prototype.dimension = function() {
                return this.$element.hasClass("width") ? "width" : "height"
            }
            ,
            r.prototype.show = function() {
                if (!this.transitioning && !this.$element.hasClass("in")) {
                    var t, i = this.$parent && this.$parent.children(".panel").children(".in, .collapsing");
                    if (!(i && i.length && (t = i.data("bs.collapse"),
                    t && t.transitioning))) {
                        var o = e.Event("show.bs.collapse");
                        if (this.$element.trigger(o),
                        !o.isDefaultPrevented()) {
                            i && i.length && (n.call(i, "hide"),
                            t || i.data("bs.collapse", null));
                            var a = this.dimension();
                            this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded", !0),
                            this.$trigger.removeClass("collapsed").attr("aria-expanded", !0),
                            this.transitioning = 1;
                            var s = function() {
                                this.$element.removeClass("collapsing").addClass("collapse in")[a](""),
                                this.transitioning = 0,
                                this.$element.trigger("shown.bs.collapse")
                            };
                            if (!e.support.transition)
                                return s.call(this);
                            var l = e.camelCase(["scroll", a].join("-"));
                            this.$element.one("bsTransitionEnd", e.proxy(s, this)).emulateTransitionEnd(r.TRANSITION_DURATION)[a](this.$element[0][l])
                        }
                    }
                }
            }
            ,
            r.prototype.hide = function() {
                if (!this.transitioning && this.$element.hasClass("in")) {
                    var t = e.Event("hide.bs.collapse");
                    if (this.$element.trigger(t),
                    !t.isDefaultPrevented()) {
                        var n = this.dimension();
                        this.$element[n](this.$element[n]())[0].offsetHeight,
                        this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1),
                        this.$trigger.addClass("collapsed").attr("aria-expanded", !1),
                        this.transitioning = 1;
                        var i = function() {
                            this.transitioning = 0,
                            this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")
                        };
                        return e.support.transition ? void this.$element[n](0).one("bsTransitionEnd", e.proxy(i, this)).emulateTransitionEnd(r.TRANSITION_DURATION) : i.call(this)
                    }
                }
            }
            ,
            r.prototype.toggle = function() {
                this[this.$element.hasClass("in") ? "hide" : "show"]()
            }
            ,
            r.prototype.getParent = function() {
                return e(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(e.proxy((function(n, r) {
                    var i = e(r);
                    this.addAriaAndCollapsedClass(t(i), i)
                }
                ), this)).end()
            }
            ,
            r.prototype.addAriaAndCollapsedClass = function(e, t) {
                var n = e.hasClass("in");
                e.attr("aria-expanded", n),
                t.toggleClass("collapsed", !n).attr("aria-expanded", n)
            }
            ;
            var i = e.fn.collapse;
            e.fn.collapse = n,
            e.fn.collapse.Constructor = r,
            e.fn.collapse.noConflict = function() {
                return e.fn.collapse = i,
                this
            }
            ,
            e(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', (function(r) {
                var i = e(this);
                i.attr("data-target") || r.preventDefault();
                var o = t(i)
                  , a = o.data("bs.collapse") ? "toggle" : i.data();
                n.call(o, a)
            }
            ))
        }(jQuery),
        function(e) {
            "use strict";
            function t(t) {
                var n = t.attr("data-target");
                n || (n = (n = t.attr("href")) && /#[A-Za-z]/.test(n) && n.replace(/.*(?=#[^\s]*$)/, ""));
                var r = n && e(n);
                return r && r.length ? r : t.parent()
            }
            function n(n) {
                n && 3 === n.which || (e(r).remove(),
                e(i).each((function() {
                    var r = e(this)
                      , i = t(r)
                      , o = {
                        relatedTarget: this
                    };
                    i.hasClass("open") && (n && "click" == n.type && /input|textarea/i.test(n.target.tagName) && e.contains(i[0], n.target) || (i.trigger(n = e.Event("hide.bs.dropdown", o)),
                    n.isDefaultPrevented() || (r.attr("aria-expanded", "false"),
                    i.removeClass("open").trigger(e.Event("hidden.bs.dropdown", o)))))
                }
                )))
            }
            var r = ".dropdown-backdrop"
              , i = '[data-toggle="dropdown"]'
              , o = function(t) {
                e(t).on("click.bs.dropdown", this.toggle)
            };
            o.VERSION = "3.3.7",
            o.prototype.toggle = function(r) {
                var i = e(this);
                if (!i.is(".disabled, :disabled")) {
                    var o = t(i)
                      , a = o.hasClass("open");
                    if (n(),
                    !a) {
                        "ontouchstart"in document.documentElement && !o.closest(".navbar-nav").length && e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click", n);
                        var s = {
                            relatedTarget: this
                        };
                        if (o.trigger(r = e.Event("show.bs.dropdown", s)),
                        r.isDefaultPrevented())
                            return;
                        i.trigger("focus").attr("aria-expanded", "true"),
                        o.toggleClass("open").trigger(e.Event("shown.bs.dropdown", s))
                    }
                    return !1
                }
            }
            ,
            o.prototype.keydown = function(n) {
                if (/(38|40|27|32)/.test(n.which) && !/input|textarea/i.test(n.target.tagName)) {
                    var r = e(this);
                    if (n.preventDefault(),
                    n.stopPropagation(),
                    !r.is(".disabled, :disabled")) {
                        var o = t(r)
                          , a = o.hasClass("open");
                        if (!a && 27 != n.which || a && 27 == n.which)
                            return 27 == n.which && o.find(i).trigger("focus"),
                            r.trigger("click");
                        var s = o.find(".dropdown-menu li:not(.disabled):visible a");
                        if (s.length) {
                            var l = s.index(n.target);
                            38 == n.which && l > 0 && l--,
                            40 == n.which && l < s.length - 1 && l++,
                            ~l || (l = 0),
                            s.eq(l).trigger("focus")
                        }
                    }
                }
            }
            ;
            var a = e.fn.dropdown;
            e.fn.dropdown = function(t) {
                return this.each((function() {
                    var n = e(this)
                      , r = n.data("bs.dropdown");
                    r || n.data("bs.dropdown", r = new o(this)),
                    "string" == typeof t && r[t].call(n)
                }
                ))
            }
            ,
            e.fn.dropdown.Constructor = o,
            e.fn.dropdown.noConflict = function() {
                return e.fn.dropdown = a,
                this
            }
            ,
            e(document).on("click.bs.dropdown.data-api", n).on("click.bs.dropdown.data-api", ".dropdown form", (function(e) {
                e.stopPropagation()
            }
            )).on("click.bs.dropdown.data-api", i, o.prototype.toggle).on("keydown.bs.dropdown.data-api", i, o.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", o.prototype.keydown)
        }(jQuery),
        function(e) {
            "use strict";
            function t(t, r) {
                return this.each((function() {
                    var i = e(this)
                      , o = i.data("bs.modal")
                      , a = e.extend({}, n.DEFAULTS, i.data(), "object" == typeof t && t);
                    o || i.data("bs.modal", o = new n(this,a)),
                    "string" == typeof t ? o[t](r) : a.show && o.show(r)
                }
                ))
            }
            var n = function(t, n) {
                this.options = n,
                this.$body = e(document.body),
                this.$element = e(t),
                this.$dialog = this.$element.find(".modal-dialog"),
                this.$backdrop = null,
                this.isShown = null,
                this.originalBodyPad = null,
                this.scrollbarWidth = 0,
                this.ignoreBackdropClick = !1,
                this.options.remote && this.$element.find(".modal-content").load(this.options.remote, e.proxy((function() {
                    this.$element.trigger("loaded.bs.modal")
                }
                ), this))
            };
            n.VERSION = "3.3.7",
            n.TRANSITION_DURATION = 300,
            n.BACKDROP_TRANSITION_DURATION = 150,
            n.DEFAULTS = {
                backdrop: !0,
                keyboard: !0,
                show: !0
            },
            n.prototype.toggle = function(e) {
                return this.isShown ? this.hide() : this.show(e)
            }
            ,
            n.prototype.show = function(t) {
                var r = this
                  , i = e.Event("show.bs.modal", {
                    relatedTarget: t
                });
                this.$element.trigger(i),
                this.isShown || i.isDefaultPrevented() || (this.isShown = !0,
                this.checkScrollbar(),
                this.setScrollbar(),
                this.$body.addClass("modal-open"),
                this.escape(),
                this.resize(),
                this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', e.proxy(this.hide, this)),
                this.$dialog.on("mousedown.dismiss.bs.modal", (function() {
                    r.$element.one("mouseup.dismiss.bs.modal", (function(t) {
                        e(t.target).is(r.$element) && (r.ignoreBackdropClick = !0)
                    }
                    ))
                }
                )),
                this.backdrop((function() {
                    var i = e.support.transition && r.$element.hasClass("fade");
                    r.$element.parent().length || r.$element.appendTo(r.$body),
                    r.$element.show().scrollTop(0),
                    r.adjustDialog(),
                    i && r.$element[0].offsetWidth,
                    r.$element.addClass("in"),
                    r.enforceFocus();
                    var o = e.Event("shown.bs.modal", {
                        relatedTarget: t
                    });
                    i ? r.$dialog.one("bsTransitionEnd", (function() {
                        r.$element.trigger("focus").trigger(o)
                    }
                    )).emulateTransitionEnd(n.TRANSITION_DURATION) : r.$element.trigger("focus").trigger(o)
                }
                )))
            }
            ,
            n.prototype.hide = function(t) {
                t && t.preventDefault(),
                t = e.Event("hide.bs.modal"),
                this.$element.trigger(t),
                this.isShown && !t.isDefaultPrevented() && (this.isShown = !1,
                this.escape(),
                this.resize(),
                e(document).off("focusin.bs.modal"),
                this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),
                this.$dialog.off("mousedown.dismiss.bs.modal"),
                e.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", e.proxy(this.hideModal, this)).emulateTransitionEnd(n.TRANSITION_DURATION) : this.hideModal())
            }
            ,
            n.prototype.enforceFocus = function() {
                e(document).off("focusin.bs.modal").on("focusin.bs.modal", e.proxy((function(e) {
                    document === e.target || this.$element[0] === e.target || this.$element.has(e.target).length || this.$element.trigger("focus")
                }
                ), this))
            }
            ,
            n.prototype.escape = function() {
                this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", e.proxy((function(e) {
                    27 == e.which && this.hide()
                }
                ), this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal")
            }
            ,
            n.prototype.resize = function() {
                this.isShown ? e(window).on("resize.bs.modal", e.proxy(this.handleUpdate, this)) : e(window).off("resize.bs.modal")
            }
            ,
            n.prototype.hideModal = function() {
                var e = this;
                this.$element.hide(),
                this.backdrop((function() {
                    e.$body.removeClass("modal-open"),
                    e.resetAdjustments(),
                    e.resetScrollbar(),
                    e.$element.trigger("hidden.bs.modal")
                }
                ))
            }
            ,
            n.prototype.removeBackdrop = function() {
                this.$backdrop && this.$backdrop.remove(),
                this.$backdrop = null
            }
            ,
            n.prototype.backdrop = function(t) {
                var r = this
                  , i = this.$element.hasClass("fade") ? "fade" : "";
                if (this.isShown && this.options.backdrop) {
                    var o = e.support.transition && i;
                    if (this.$backdrop = e(document.createElement("div")).addClass("modal-backdrop " + i).appendTo(this.$body),
                    this.$element.on("click.dismiss.bs.modal", e.proxy((function(e) {
                        return this.ignoreBackdropClick ? void (this.ignoreBackdropClick = !1) : void (e.target === e.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()))
                    }
                    ), this)),
                    o && this.$backdrop[0].offsetWidth,
                    this.$backdrop.addClass("in"),
                    !t)
                        return;
                    o ? this.$backdrop.one("bsTransitionEnd", t).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION) : t()
                } else if (!this.isShown && this.$backdrop) {
                    this.$backdrop.removeClass("in");
                    var a = function() {
                        r.removeBackdrop(),
                        t && t()
                    };
                    e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", a).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION) : a()
                } else
                    t && t()
            }
            ,
            n.prototype.handleUpdate = function() {
                this.adjustDialog()
            }
            ,
            n.prototype.adjustDialog = function() {
                var e = this.$element[0].scrollHeight > document.documentElement.clientHeight;
                this.$element.css({
                    paddingLeft: !this.bodyIsOverflowing && e ? this.scrollbarWidth : "",
                    paddingRight: this.bodyIsOverflowing && !e ? this.scrollbarWidth : ""
                })
            }
            ,
            n.prototype.resetAdjustments = function() {
                this.$element.css({
                    paddingLeft: "",
                    paddingRight: ""
                })
            }
            ,
            n.prototype.checkScrollbar = function() {
                var e = window.innerWidth;
                if (!e) {
                    var t = document.documentElement.getBoundingClientRect();
                    e = t.right - Math.abs(t.left)
                }
                this.bodyIsOverflowing = document.body.clientWidth < e,
                this.scrollbarWidth = this.measureScrollbar()
            }
            ,
            n.prototype.setScrollbar = function() {
                var e = parseInt(this.$body.css("padding-right") || 0, 10);
                this.originalBodyPad = document.body.style.paddingRight || "",
                this.bodyIsOverflowing && this.$body.css("padding-right", e + this.scrollbarWidth)
            }
            ,
            n.prototype.resetScrollbar = function() {
                this.$body.css("padding-right", this.originalBodyPad)
            }
            ,
            n.prototype.measureScrollbar = function() {
                var e = document.createElement("div");
                e.className = "modal-scrollbar-measure",
                this.$body.append(e);
                var t = e.offsetWidth - e.clientWidth;
                return this.$body[0].removeChild(e),
                t
            }
            ;
            var r = e.fn.modal;
            e.fn.modal = t,
            e.fn.modal.Constructor = n,
            e.fn.modal.noConflict = function() {
                return e.fn.modal = r,
                this
            }
            ,
            e(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', (function(n) {
                var r = e(this)
                  , i = r.attr("href")
                  , o = e(r.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, ""))
                  , a = o.data("bs.modal") ? "toggle" : e.extend({
                    remote: !/#/.test(i) && i
                }, o.data(), r.data());
                r.is("a") && n.preventDefault(),
                o.one("show.bs.modal", (function(e) {
                    e.isDefaultPrevented() || o.one("hidden.bs.modal", (function() {
                        r.is(":visible") && r.trigger("focus")
                    }
                    ))
                }
                )),
                t.call(o, a, this)
            }
            ))
        }(jQuery),
        function(e) {
            "use strict";
            var t = function(e, t) {
                this.type = null,
                this.options = null,
                this.enabled = null,
                this.timeout = null,
                this.hoverState = null,
                this.$element = null,
                this.inState = null,
                this.init("tooltip", e, t)
            };
            t.VERSION = "3.3.7",
            t.TRANSITION_DURATION = 150,
            t.DEFAULTS = {
                animation: !0,
                placement: "top",
                selector: !1,
                template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
                trigger: "hover focus",
                title: "",
                delay: 0,
                html: !1,
                container: !1,
                viewport: {
                    selector: "body",
                    padding: 0
                }
            },
            t.prototype.init = function(t, n, r) {
                if (this.enabled = !0,
                this.type = t,
                this.$element = e(n),
                this.options = this.getOptions(r),
                this.$viewport = this.options.viewport && e(e.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport),
                this.inState = {
                    click: !1,
                    hover: !1,
                    focus: !1
                },
                this.$element[0]instanceof document.constructor && !this.options.selector)
                    throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!");
                for (var i = this.options.trigger.split(" "), o = i.length; o--; ) {
                    var a = i[o];
                    if ("click" == a)
                        this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this));
                    else if ("manual" != a) {
                        var s = "hover" == a ? "mouseenter" : "focusin"
                          , l = "hover" == a ? "mouseleave" : "focusout";
                        this.$element.on(s + "." + this.type, this.options.selector, e.proxy(this.enter, this)),
                        this.$element.on(l + "." + this.type, this.options.selector, e.proxy(this.leave, this))
                    }
                }
                this.options.selector ? this._options = e.extend({}, this.options, {
                    trigger: "manual",
                    selector: ""
                }) : this.fixTitle()
            }
            ,
            t.prototype.getDefaults = function() {
                return t.DEFAULTS
            }
            ,
            t.prototype.getOptions = function(t) {
                return (t = e.extend({}, this.getDefaults(), this.$element.data(), t)).delay && "number" == typeof t.delay && (t.delay = {
                    show: t.delay,
                    hide: t.delay
                }),
                t
            }
            ,
            t.prototype.getDelegateOptions = function() {
                var t = {}
                  , n = this.getDefaults();
                return this._options && e.each(this._options, (function(e, r) {
                    n[e] != r && (t[e] = r)
                }
                )),
                t
            }
            ,
            t.prototype.enter = function(t) {
                var n = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type);
                return n || (n = new this.constructor(t.currentTarget,this.getDelegateOptions()),
                e(t.currentTarget).data("bs." + this.type, n)),
                t instanceof e.Event && (n.inState["focusin" == t.type ? "focus" : "hover"] = !0),
                n.tip().hasClass("in") || "in" == n.hoverState ? void (n.hoverState = "in") : (clearTimeout(n.timeout),
                n.hoverState = "in",
                n.options.delay && n.options.delay.show ? void (n.timeout = setTimeout((function() {
                    "in" == n.hoverState && n.show()
                }
                ), n.options.delay.show)) : n.show())
            }
            ,
            t.prototype.isInStateTrue = function() {
                for (var e in this.inState)
                    if (this.inState[e])
                        return !0;
                return !1
            }
            ,
            t.prototype.leave = function(t) {
                var n = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type);
                if (n || (n = new this.constructor(t.currentTarget,this.getDelegateOptions()),
                e(t.currentTarget).data("bs." + this.type, n)),
                t instanceof e.Event && (n.inState["focusout" == t.type ? "focus" : "hover"] = !1),
                !n.isInStateTrue())
                    return clearTimeout(n.timeout),
                    n.hoverState = "out",
                    n.options.delay && n.options.delay.hide ? void (n.timeout = setTimeout((function() {
                        "out" == n.hoverState && n.hide()
                    }
                    ), n.options.delay.hide)) : n.hide()
            }
            ,
            t.prototype.show = function() {
                var n = e.Event("show.bs." + this.type);
                if (this.hasContent() && this.enabled) {
                    this.$element.trigger(n);
                    var r = e.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);
                    if (n.isDefaultPrevented() || !r)
                        return;
                    var i = this
                      , o = this.tip()
                      , a = this.getUID(this.type);
                    this.setContent(),
                    o.attr("id", a),
                    this.$element.attr("aria-describedby", a),
                    this.options.animation && o.addClass("fade");
                    var s = "function" == typeof this.options.placement ? this.options.placement.call(this, o[0], this.$element[0]) : this.options.placement
                      , l = /\s?auto?\s?/i
                      , u = l.test(s);
                    u && (s = s.replace(l, "") || "top"),
                    o.detach().css({
                        top: 0,
                        left: 0,
                        display: "block"
                    }).addClass(s).data("bs." + this.type, this),
                    this.options.container ? o.appendTo(this.options.container) : o.insertAfter(this.$element),
                    this.$element.trigger("inserted.bs." + this.type);
                    var c = this.getPosition()
                      , f = o[0].offsetWidth
                      , d = o[0].offsetHeight;
                    if (u) {
                        var p = s
                          , h = this.getPosition(this.$viewport);
                        s = "bottom" == s && c.bottom + d > h.bottom ? "top" : "top" == s && c.top - d < h.top ? "bottom" : "right" == s && c.right + f > h.width ? "left" : "left" == s && c.left - f < h.left ? "right" : s,
                        o.removeClass(p).addClass(s)
                    }
                    var m = this.getCalculatedOffset(s, c, f, d);
                    this.applyPlacement(m, s);
                    var g = function() {
                        var e = i.hoverState;
                        i.$element.trigger("shown.bs." + i.type),
                        i.hoverState = null,
                        "out" == e && i.leave(i)
                    };
                    e.support.transition && this.$tip.hasClass("fade") ? o.one("bsTransitionEnd", g).emulateTransitionEnd(t.TRANSITION_DURATION) : g()
                }
            }
            ,
            t.prototype.applyPlacement = function(t, n) {
                var r = this.tip()
                  , i = r[0].offsetWidth
                  , o = r[0].offsetHeight
                  , a = parseInt(r.css("margin-top"), 10)
                  , s = parseInt(r.css("margin-left"), 10);
                isNaN(a) && (a = 0),
                isNaN(s) && (s = 0),
                t.top += a,
                t.left += s,
                e.offset.setOffset(r[0], e.extend({
                    using: function(e) {
                        r.css({
                            top: Math.round(e.top),
                            left: Math.round(e.left)
                        })
                    }
                }, t), 0),
                r.addClass("in");
                var l = r[0].offsetWidth
                  , u = r[0].offsetHeight;
                "top" == n && u != o && (t.top = t.top + o - u);
                var c = this.getViewportAdjustedDelta(n, t, l, u);
                c.left ? t.left += c.left : t.top += c.top;
                var f = /top|bottom/.test(n)
                  , d = f ? 2 * c.left - i + l : 2 * c.top - o + u
                  , p = f ? "offsetWidth" : "offsetHeight";
                r.offset(t),
                this.replaceArrow(d, r[0][p], f)
            }
            ,
            t.prototype.replaceArrow = function(e, t, n) {
                this.arrow().css(n ? "left" : "top", 50 * (1 - e / t) + "%").css(n ? "top" : "left", "")
            }
            ,
            t.prototype.setContent = function() {
                var e = this.tip()
                  , t = this.getTitle();
                e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t),
                e.removeClass("fade in top bottom left right")
            }
            ,
            t.prototype.hide = function(n) {
                function r() {
                    "in" != i.hoverState && o.detach(),
                    i.$element && i.$element.removeAttr("aria-describedby").trigger("hidden.bs." + i.type),
                    n && n()
                }
                var i = this
                  , o = e(this.$tip)
                  , a = e.Event("hide.bs." + this.type);
                if (this.$element.trigger(a),
                !a.isDefaultPrevented())
                    return o.removeClass("in"),
                    e.support.transition && o.hasClass("fade") ? o.one("bsTransitionEnd", r).emulateTransitionEnd(t.TRANSITION_DURATION) : r(),
                    this.hoverState = null,
                    this
            }
            ,
            t.prototype.fixTitle = function() {
                var e = this.$element;
                (e.attr("title") || "string" != typeof e.attr("data-original-title")) && e.attr("data-original-title", e.attr("title") || "").attr("title", "")
            }
            ,
            t.prototype.hasContent = function() {
                return this.getTitle()
            }
            ,
            t.prototype.getPosition = function(t) {
                var n = (t = t || this.$element)[0]
                  , r = "BODY" == n.tagName
                  , i = n.getBoundingClientRect();
                null == i.width && (i = e.extend({}, i, {
                    width: i.right - i.left,
                    height: i.bottom - i.top
                }));
                var o = window.SVGElement && n instanceof window.SVGElement
                  , a = r ? {
                    top: 0,
                    left: 0
                } : o ? null : t.offset()
                  , s = {
                    scroll: r ? document.documentElement.scrollTop || document.body.scrollTop : t.scrollTop()
                }
                  , l = r ? {
                    width: e(window).width(),
                    height: e(window).height()
                } : null;
                return e.extend({}, i, s, l, a)
            }
            ,
            t.prototype.getCalculatedOffset = function(e, t, n, r) {
                return "bottom" == e ? {
                    top: t.top + t.height,
                    left: t.left + t.width / 2 - n / 2
                } : "top" == e ? {
                    top: t.top - r,
                    left: t.left + t.width / 2 - n / 2
                } : "left" == e ? {
                    top: t.top + t.height / 2 - r / 2,
                    left: t.left - n
                } : {
                    top: t.top + t.height / 2 - r / 2,
                    left: t.left + t.width
                }
            }
            ,
            t.prototype.getViewportAdjustedDelta = function(e, t, n, r) {
                var i = {
                    top: 0,
                    left: 0
                };
                if (!this.$viewport)
                    return i;
                var o = this.options.viewport && this.options.viewport.padding || 0
                  , a = this.getPosition(this.$viewport);
                if (/right|left/.test(e)) {
                    var s = t.top - o - a.scroll
                      , l = t.top + o - a.scroll + r;
                    s < a.top ? i.top = a.top - s : l > a.top + a.height && (i.top = a.top + a.height - l)
                } else {
                    var u = t.left - o
                      , c = t.left + o + n;
                    u < a.left ? i.left = a.left - u : c > a.right && (i.left = a.left + a.width - c)
                }
                return i
            }
            ,
            t.prototype.getTitle = function() {
                var e = this.$element
                  , t = this.options;
                return e.attr("data-original-title") || ("function" == typeof t.title ? t.title.call(e[0]) : t.title)
            }
            ,
            t.prototype.getUID = function(e) {
                do {
                    e += ~~(1e6 * Math.random())
                } while (document.getElementById(e));
                return e
            }
            ,
            t.prototype.tip = function() {
                if (!this.$tip && (this.$tip = e(this.options.template),
                1 != this.$tip.length))
                    throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!");
                return this.$tip
            }
            ,
            t.prototype.arrow = function() {
                return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
            }
            ,
            t.prototype.enable = function() {
                this.enabled = !0
            }
            ,
            t.prototype.disable = function() {
                this.enabled = !1
            }
            ,
            t.prototype.toggleEnabled = function() {
                this.enabled = !this.enabled
            }
            ,
            t.prototype.toggle = function(t) {
                var n = this;
                t && ((n = e(t.currentTarget).data("bs." + this.type)) || (n = new this.constructor(t.currentTarget,this.getDelegateOptions()),
                e(t.currentTarget).data("bs." + this.type, n))),
                t ? (n.inState.click = !n.inState.click,
                n.isInStateTrue() ? n.enter(n) : n.leave(n)) : n.tip().hasClass("in") ? n.leave(n) : n.enter(n)
            }
            ,
            t.prototype.destroy = function() {
                var e = this;
                clearTimeout(this.timeout),
                this.hide((function() {
                    e.$element.off("." + e.type).removeData("bs." + e.type),
                    e.$tip && e.$tip.detach(),
                    e.$tip = null,
                    e.$arrow = null,
                    e.$viewport = null,
                    e.$element = null
                }
                ))
            }
            ;
            var n = e.fn.tooltip;
            e.fn.tooltip = function(n) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.tooltip")
                      , o = "object" == typeof n && n;
                    !i && /destroy|hide/.test(n) || (i || r.data("bs.tooltip", i = new t(this,o)),
                    "string" == typeof n && i[n]())
                }
                ))
            }
            ,
            e.fn.tooltip.Constructor = t,
            e.fn.tooltip.noConflict = function() {
                return e.fn.tooltip = n,
                this
            }
        }(jQuery),
        function(e) {
            "use strict";
            var t = function(e, t) {
                this.init("popover", e, t)
            };
            if (!e.fn.tooltip)
                throw new Error("Popover requires tooltip.js");
            t.VERSION = "3.3.7",
            t.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, {
                placement: "right",
                trigger: "click",
                content: "",
                template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
            }),
            (t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype)).constructor = t,
            t.prototype.getDefaults = function() {
                return t.DEFAULTS
            }
            ,
            t.prototype.setContent = function() {
                var e = this.tip()
                  , t = this.getTitle()
                  , n = this.getContent();
                e.find(".popover-title")[this.options.html ? "html" : "text"](t),
                e.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof n ? "html" : "append" : "text"](n),
                e.removeClass("fade top bottom left right in"),
                e.find(".popover-title").html() || e.find(".popover-title").hide()
            }
            ,
            t.prototype.hasContent = function() {
                return this.getTitle() || this.getContent()
            }
            ,
            t.prototype.getContent = function() {
                var e = this.$element
                  , t = this.options;
                return e.attr("data-content") || ("function" == typeof t.content ? t.content.call(e[0]) : t.content)
            }
            ,
            t.prototype.arrow = function() {
                return this.$arrow = this.$arrow || this.tip().find(".arrow")
            }
            ;
            var n = e.fn.popover;
            e.fn.popover = function(n) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.popover")
                      , o = "object" == typeof n && n;
                    !i && /destroy|hide/.test(n) || (i || r.data("bs.popover", i = new t(this,o)),
                    "string" == typeof n && i[n]())
                }
                ))
            }
            ,
            e.fn.popover.Constructor = t,
            e.fn.popover.noConflict = function() {
                return e.fn.popover = n,
                this
            }
        }(jQuery),
        function(e) {
            "use strict";
            function t(n, r) {
                this.$body = e(document.body),
                this.$scrollElement = e(e(n).is(document.body) ? window : n),
                this.options = e.extend({}, t.DEFAULTS, r),
                this.selector = (this.options.target || "") + " .nav li > a",
                this.offsets = [],
                this.targets = [],
                this.activeTarget = null,
                this.scrollHeight = 0,
                this.$scrollElement.on("scroll.bs.scrollspy", e.proxy(this.process, this)),
                this.refresh(),
                this.process()
            }
            function n(n) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.scrollspy")
                      , o = "object" == typeof n && n;
                    i || r.data("bs.scrollspy", i = new t(this,o)),
                    "string" == typeof n && i[n]()
                }
                ))
            }
            t.VERSION = "3.3.7",
            t.DEFAULTS = {
                offset: 10
            },
            t.prototype.getScrollHeight = function() {
                return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
            }
            ,
            t.prototype.refresh = function() {
                var t = this
                  , n = "offset"
                  , r = 0;
                this.offsets = [],
                this.targets = [],
                this.scrollHeight = this.getScrollHeight(),
                e.isWindow(this.$scrollElement[0]) || (n = "position",
                r = this.$scrollElement.scrollTop()),
                this.$body.find(this.selector).map((function() {
                    var t = e(this)
                      , i = t.data("target") || t.attr("href")
                      , o = /^#./.test(i) && e(i);
                    return o && o.length && o.is(":visible") && [[o[n]().top + r, i]] || null
                }
                )).sort((function(e, t) {
                    return e[0] - t[0]
                }
                )).each((function() {
                    t.offsets.push(this[0]),
                    t.targets.push(this[1])
                }
                ))
            }
            ,
            t.prototype.process = function() {
                var e, t = this.$scrollElement.scrollTop() + this.options.offset, n = this.getScrollHeight(), r = this.options.offset + n - this.$scrollElement.height(), i = this.offsets, o = this.targets, a = this.activeTarget;
                if (this.scrollHeight != n && this.refresh(),
                t >= r)
                    return a != (e = o[o.length - 1]) && this.activate(e);
                if (a && t < i[0])
                    return this.activeTarget = null,
                    this.clear();
                for (e = i.length; e--; )
                    a != o[e] && t >= i[e] && (void 0 === i[e + 1] || t < i[e + 1]) && this.activate(o[e])
            }
            ,
            t.prototype.activate = function(t) {
                this.activeTarget = t,
                this.clear();
                var n = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]'
                  , r = e(n).parents("li").addClass("active");
                r.parent(".dropdown-menu").length && (r = r.closest("li.dropdown").addClass("active")),
                r.trigger("activate.bs.scrollspy")
            }
            ,
            t.prototype.clear = function() {
                e(this.selector).parentsUntil(this.options.target, ".active").removeClass("active")
            }
            ;
            var r = e.fn.scrollspy;
            e.fn.scrollspy = n,
            e.fn.scrollspy.Constructor = t,
            e.fn.scrollspy.noConflict = function() {
                return e.fn.scrollspy = r,
                this
            }
            ,
            e(window).on("load.bs.scrollspy.data-api", (function() {
                e('[data-spy="scroll"]').each((function() {
                    var t = e(this);
                    n.call(t, t.data())
                }
                ))
            }
            ))
        }(jQuery),
        function(e) {
            "use strict";
            function t(t) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.tab");
                    i || r.data("bs.tab", i = new n(this)),
                    "string" == typeof t && i[t]()
                }
                ))
            }
            var n = function(t) {
                this.element = e(t)
            };
            n.VERSION = "3.3.7",
            n.TRANSITION_DURATION = 150,
            n.prototype.show = function() {
                var t = this.element
                  , n = t.closest("ul:not(.dropdown-menu)")
                  , r = t.data("target");
                if (r || (r = (r = t.attr("href")) && r.replace(/.*(?=#[^\s]*$)/, "")),
                !t.parent("li").hasClass("active")) {
                    var i = n.find(".active:last a")
                      , o = e.Event("hide.bs.tab", {
                        relatedTarget: t[0]
                    })
                      , a = e.Event("show.bs.tab", {
                        relatedTarget: i[0]
                    });
                    if (i.trigger(o),
                    t.trigger(a),
                    !a.isDefaultPrevented() && !o.isDefaultPrevented()) {
                        var s = e(r);
                        this.activate(t.closest("li"), n),
                        this.activate(s, s.parent(), (function() {
                            i.trigger({
                                type: "hidden.bs.tab",
                                relatedTarget: t[0]
                            }),
                            t.trigger({
                                type: "shown.bs.tab",
                                relatedTarget: i[0]
                            })
                        }
                        ))
                    }
                }
            }
            ,
            n.prototype.activate = function(t, r, i) {
                function o() {
                    a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1),
                    t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0),
                    s ? (t[0].offsetWidth,
                    t.addClass("in")) : t.removeClass("fade"),
                    t.parent(".dropdown-menu").length && t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0),
                    i && i()
                }
                var a = r.find("> .active")
                  , s = i && e.support.transition && (a.length && a.hasClass("fade") || !!r.find("> .fade").length);
                a.length && s ? a.one("bsTransitionEnd", o).emulateTransitionEnd(n.TRANSITION_DURATION) : o(),
                a.removeClass("in")
            }
            ;
            var r = e.fn.tab;
            e.fn.tab = t,
            e.fn.tab.Constructor = n,
            e.fn.tab.noConflict = function() {
                return e.fn.tab = r,
                this
            }
            ;
            var i = function(n) {
                n.preventDefault(),
                t.call(e(this), "show")
            };
            e(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', i).on("click.bs.tab.data-api", '[data-toggle="pill"]', i)
        }(jQuery),
        function(e) {
            "use strict";
            function t(t) {
                return this.each((function() {
                    var r = e(this)
                      , i = r.data("bs.affix")
                      , o = "object" == typeof t && t;
                    i || r.data("bs.affix", i = new n(this,o)),
                    "string" == typeof t && i[t]()
                }
                ))
            }
            var n = function(t, r) {
                this.options = e.extend({}, n.DEFAULTS, r),
                this.$target = e(this.options.target).on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", e.proxy(this.checkPositionWithEventLoop, this)),
                this.$element = e(t),
                this.affixed = null,
                this.unpin = null,
                this.pinnedOffset = null,
                this.checkPosition()
            };
            n.VERSION = "3.3.7",
            n.RESET = "affix affix-top affix-bottom",
            n.DEFAULTS = {
                offset: 0,
                target: window
            },
            n.prototype.getState = function(e, t, n, r) {
                var i = this.$target.scrollTop()
                  , o = this.$element.offset()
                  , a = this.$target.height();
                if (null != n && "top" == this.affixed)
                    return i < n && "top";
                if ("bottom" == this.affixed)
                    return null != n ? !(i + this.unpin <= o.top) && "bottom" : !(i + a <= e - r) && "bottom";
                var s = null == this.affixed
                  , l = s ? i : o.top;
                return null != n && i <= n ? "top" : null != r && l + (s ? a : t) >= e - r && "bottom"
            }
            ,
            n.prototype.getPinnedOffset = function() {
                if (this.pinnedOffset)
                    return this.pinnedOffset;
                this.$element.removeClass(n.RESET).addClass("affix");
                var e = this.$target.scrollTop()
                  , t = this.$element.offset();
                return this.pinnedOffset = t.top - e
            }
            ,
            n.prototype.checkPositionWithEventLoop = function() {
                setTimeout(e.proxy(this.checkPosition, this), 1)
            }
            ,
            n.prototype.checkPosition = function() {
                if (this.$element.is(":visible")) {
                    var t = this.$element.height()
                      , r = this.options.offset
                      , i = r.top
                      , o = r.bottom
                      , a = Math.max(e(document).height(), e(document.body).height());
                    "object" != typeof r && (o = i = r),
                    "function" == typeof i && (i = r.top(this.$element)),
                    "function" == typeof o && (o = r.bottom(this.$element));
                    var s = this.getState(a, t, i, o);
                    if (this.affixed != s) {
                        null != this.unpin && this.$element.css("top", "");
                        var l = "affix" + (s ? "-" + s : "")
                          , u = e.Event(l + ".bs.affix");
                        if (this.$element.trigger(u),
                        u.isDefaultPrevented())
                            return;
                        this.affixed = s,
                        this.unpin = "bottom" == s ? this.getPinnedOffset() : null,
                        this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix", "affixed") + ".bs.affix")
                    }
                    "bottom" == s && this.$element.offset({
                        top: a - t - o
                    })
                }
            }
            ;
            var r = e.fn.affix;
            e.fn.affix = t,
            e.fn.affix.Constructor = n,
            e.fn.affix.noConflict = function() {
                return e.fn.affix = r,
                this
            }
            ,
            e(window).on("load", (function() {
                e('[data-spy="affix"]').each((function() {
                    var n = e(this)
                      , r = n.data();
                    r.offset = r.offset || {},
                    null != r.offsetBottom && (r.offset.bottom = r.offsetBottom),
                    null != r.offsetTop && (r.offset.top = r.offsetTop),
                    t.call(n, r)
                }
                ))
            }
            ))
        }(jQuery)
    }
    ,
    98: (e,t,n)=>{
        var r, i, o;
        i = [n(755)],
        void 0 === (o = "function" == typeof (r = function(e) {
            function t(e) {
                return a.raw ? e : encodeURIComponent(e)
            }
            function n(e) {
                return a.raw ? e : decodeURIComponent(e)
            }
            function r(e) {
                return t(a.json ? JSON.stringify(e) : String(e))
            }
            function i(t, n) {
                var r = a.raw ? t : function(e) {
                    0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
                    try {
                        return e = decodeURIComponent(e.replace(o, " ")),
                        a.json ? JSON.parse(e) : e
                    } catch (e) {}
                }(t);
                return e.isFunction(n) ? n(r) : r
            }
            var o = /\+/g
              , a = e.cookie = function(o, s, l) {
                if (void 0 !== s && !e.isFunction(s)) {
                    if ("number" == typeof (l = e.extend({}, a.defaults, l)).expires) {
                        var u = l.expires
                          , c = l.expires = new Date;
                        c.setTime(+c + 864e5 * u)
                    }
                    return document.cookie = [t(o), "=", r(s), l.expires ? "; expires=" + l.expires.toUTCString() : "", l.path ? "; path=" + l.path : "", l.domain ? "; domain=" + l.domain : "", l.secure ? "; secure" : ""].join("")
                }
                for (var f = o ? void 0 : {}, d = document.cookie ? document.cookie.split("; ") : [], p = 0, h = d.length; h > p; p++) {
                    var m = d[p].split("=")
                      , g = n(m.shift())
                      , v = m.join("=");
                    if (o && o === g) {
                        f = i(v, s);
                        break
                    }
                    o || void 0 === (v = i(v)) || (f[g] = v)
                }
                return f
            }
            ;
            a.defaults = {},
            e.removeCookie = function(t, n) {
                return void 0 !== e.cookie(t) && (e.cookie(t, "", e.extend({}, n, {
                    expires: -1
                })),
                !e.cookie(t))
            }
        }
        ) ? r.apply(t, i) : r) || (e.exports = o)
    }
    ,
    129: ()=>{}
    ,
    46: function(e, t) {
        var n, r, i;
        r = "undefined" != typeof window ? window : this,
        i = function(r, i) {
            var o = []
              , a = o.slice
              , s = o.concat
              , l = o.push
              , u = o.indexOf
              , c = {}
              , f = c.toString
              , d = c.hasOwnProperty
              , p = {}
              , h = r.document
              , m = "2.1.4"
              , g = function(e, t) {
                return new g.fn.init(e,t)
            }
              , v = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
              , y = /^-ms-/
              , b = /-([\da-z])/gi
              , x = function(e, t) {
                return t.toUpperCase()
            };
            function w(e) {
                var t = "length"in e && e.length
                  , n = g.type(e);
                return "function" !== n && !g.isWindow(e) && (!(1 !== e.nodeType || !t) || "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)
            }
            g.fn = g.prototype = {
                jquery: m,
                constructor: g,
                selector: "",
                length: 0,
                toArray: function() {
                    return a.call(this)
                },
                get: function(e) {
                    return null != e ? 0 > e ? this[e + this.length] : this[e] : a.call(this)
                },
                pushStack: function(e) {
                    var t = g.merge(this.constructor(), e);
                    return t.prevObject = this,
                    t.context = this.context,
                    t
                },
                each: function(e, t) {
                    return g.each(this, e, t)
                },
                map: function(e) {
                    return this.pushStack(g.map(this, (function(t, n) {
                        return e.call(t, n, t)
                    }
                    )))
                },
                slice: function() {
                    return this.pushStack(a.apply(this, arguments))
                },
                first: function() {
                    return this.eq(0)
                },
                last: function() {
                    return this.eq(-1)
                },
                eq: function(e) {
                    var t = this.length
                      , n = +e + (0 > e ? t : 0);
                    return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
                },
                end: function() {
                    return this.prevObject || this.constructor(null)
                },
                push: l,
                sort: o.sort,
                splice: o.splice
            },
            g.extend = g.fn.extend = function() {
                var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, l = arguments.length, u = !1;
                for ("boolean" == typeof a && (u = a,
                a = arguments[s] || {},
                s++),
                "object" == typeof a || g.isFunction(a) || (a = {}),
                s === l && (a = this,
                s--); l > s; s++)
                    if (null != (e = arguments[s]))
                        for (t in e)
                            n = a[t],
                            a !== (r = e[t]) && (u && r && (g.isPlainObject(r) || (i = g.isArray(r))) ? (i ? (i = !1,
                            o = n && g.isArray(n) ? n : []) : o = n && g.isPlainObject(n) ? n : {},
                            a[t] = g.extend(u, o, r)) : void 0 !== r && (a[t] = r));
                return a
            }
            ,
            g.extend({
                expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""),
                isReady: !0,
                error: function(e) {
                    throw new Error(e)
                },
                noop: function() {},
                isFunction: function(e) {
                    return "function" === g.type(e)
                },
                isArray: Array.isArray,
                isWindow: function(e) {
                    return null != e && e === e.window
                },
                isNumeric: function(e) {
                    return !g.isArray(e) && e - parseFloat(e) + 1 >= 0
                },
                isPlainObject: function(e) {
                    return !("object" !== g.type(e) || e.nodeType || g.isWindow(e) || e.constructor && !d.call(e.constructor.prototype, "isPrototypeOf"))
                },
                isEmptyObject: function(e) {
                    var t;
                    for (t in e)
                        return !1;
                    return !0
                },
                type: function(e) {
                    return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? c[f.call(e)] || "object" : typeof e
                },
                globalEval: function(e) {
                    var t, n = eval;
                    (e = g.trim(e)) && (1 === e.indexOf("use strict") ? ((t = h.createElement("script")).text = e,
                    h.head.appendChild(t).parentNode.removeChild(t)) : n(e))
                },
                camelCase: function(e) {
                    return e.replace(y, "ms-").replace(b, x)
                },
                nodeName: function(e, t) {
                    return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
                },
                each: function(e, t, n) {
                    var r = 0
                      , i = e.length
                      , o = w(e);
                    if (n) {
                        if (o)
                            for (; i > r && !1 !== t.apply(e[r], n); r++)
                                ;
                        else
                            for (r in e)
                                if (!1 === t.apply(e[r], n))
                                    break
                    } else if (o)
                        for (; i > r && !1 !== t.call(e[r], r, e[r]); r++)
                            ;
                    else
                        for (r in e)
                            if (!1 === t.call(e[r], r, e[r]))
                                break;
                    return e
                },
                trim: function(e) {
                    return null == e ? "" : (e + "").replace(v, "")
                },
                makeArray: function(e, t) {
                    var n = t || [];
                    return null != e && (w(Object(e)) ? g.merge(n, "string" == typeof e ? [e] : e) : l.call(n, e)),
                    n
                },
                inArray: function(e, t, n) {
                    return null == t ? -1 : u.call(t, e, n)
                },
                merge: function(e, t) {
                    for (var n = +t.length, r = 0, i = e.length; n > r; r++)
                        e[i++] = t[r];
                    return e.length = i,
                    e
                },
                grep: function(e, t, n) {
                    for (var r = [], i = 0, o = e.length, a = !n; o > i; i++)
                        !t(e[i], i) !== a && r.push(e[i]);
                    return r
                },
                map: function(e, t, n) {
                    var r, i = 0, o = e.length, a = [];
                    if (w(e))
                        for (; o > i; i++)
                            null != (r = t(e[i], i, n)) && a.push(r);
                    else
                        for (i in e)
                            null != (r = t(e[i], i, n)) && a.push(r);
                    return s.apply([], a)
                },
                guid: 1,
                proxy: function(e, t) {
                    var n, r, i;
                    return "string" == typeof t && (n = e[t],
                    t = e,
                    e = n),
                    g.isFunction(e) ? (r = a.call(arguments, 2),
                    (i = function() {
                        return e.apply(t || this, r.concat(a.call(arguments)))
                    }
                    ).guid = e.guid = e.guid || g.guid++,
                    i) : void 0
                },
                now: Date.now,
                support: p
            }),
            g.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), (function(e, t) {
                c["[object " + t + "]"] = t.toLowerCase()
            }
            ));
            var T = function(e) {
                var t, n, r, i, o, a, s, l, u, c, f, d, p, h, m, g, v, y, b, x = "sizzle" + 1 * new Date, w = e.document, T = 0, k = 0, C = ae(), E = ae(), S = ae(), A = function(e, t) {
                    return e === t && (f = !0),
                    0
                }, D = 1 << 31, N = {}.hasOwnProperty, j = [], L = j.pop, O = j.push, q = j.push, $ = j.slice, I = function(e, t) {
                    for (var n = 0, r = e.length; r > n; n++)
                        if (e[n] === t)
                            return n;
                    return -1
                }, M = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", P = "[\\x20\\t\\r\\n\\f]", H = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", R = H.replace("w", "w#"), F = "\\[" + P + "*(" + H + ")(?:" + P + "*([*^$|!~]?=)" + P + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + P + "*\\]", _ = ":(" + H + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + F + ")*)|.*)\\)|)", z = new RegExp(P + "+","g"), B = new RegExp("^" + P + "+|((?:^|[^\\\\])(?:\\\\.)*)" + P + "+$","g"), W = new RegExp("^" + P + "*," + P + "*"), U = new RegExp("^" + P + "*([>+~]|" + P + ")" + P + "*"), X = new RegExp("=" + P + "*([^\\]'\"]*?)" + P + "*\\]","g"), V = new RegExp(_), Q = new RegExp("^" + R + "$"), Y = {
                    ID: new RegExp("^#(" + H + ")"),
                    CLASS: new RegExp("^\\.(" + H + ")"),
                    TAG: new RegExp("^(" + H.replace("w", "w*") + ")"),
                    ATTR: new RegExp("^" + F),
                    PSEUDO: new RegExp("^" + _),
                    CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + P + "*(even|odd|(([+-]|)(\\d*)n|)" + P + "*(?:([+-]|)" + P + "*(\\d+)|))" + P + "*\\)|)","i"),
                    bool: new RegExp("^(?:" + M + ")$","i"),
                    needsContext: new RegExp("^" + P + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + P + "*((?:-\\d)?\\d*)" + P + "*\\)|)(?=[^-]|$)","i")
                }, G = /^(?:input|select|textarea|button)$/i, J = /^h\d$/i, K = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = /'|\\/g, ne = new RegExp("\\\\([\\da-f]{1,6}" + P + "?|(" + P + ")|.)","ig"), re = function(e, t, n) {
                    var r = "0x" + t - 65536;
                    return r != r || n ? t : 0 > r ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
                }, ie = function() {
                    d()
                };
                try {
                    q.apply(j = $.call(w.childNodes), w.childNodes),
                    j[w.childNodes.length].nodeType
                } catch (e) {
                    q = {
                        apply: j.length ? function(e, t) {
                            O.apply(e, $.call(t))
                        }
                        : function(e, t) {
                            for (var n = e.length, r = 0; e[n++] = t[r++]; )
                                ;
                            e.length = n - 1
                        }
                    }
                }
                function oe(e, t, r, i) {
                    var o, s, u, c, f, h, v, y, T, k;
                    if ((t ? t.ownerDocument || t : w) !== p && d(t),
                    r = r || [],
                    c = (t = t || p).nodeType,
                    "string" != typeof e || !e || 1 !== c && 9 !== c && 11 !== c)
                        return r;
                    if (!i && m) {
                        if (11 !== c && (o = Z.exec(e)))
                            if (u = o[1]) {
                                if (9 === c) {
                                    if (!(s = t.getElementById(u)) || !s.parentNode)
                                        return r;
                                    if (s.id === u)
                                        return r.push(s),
                                        r
                                } else if (t.ownerDocument && (s = t.ownerDocument.getElementById(u)) && b(t, s) && s.id === u)
                                    return r.push(s),
                                    r
                            } else {
                                if (o[2])
                                    return q.apply(r, t.getElementsByTagName(e)),
                                    r;
                                if ((u = o[3]) && n.getElementsByClassName)
                                    return q.apply(r, t.getElementsByClassName(u)),
                                    r
                            }
                        if (n.qsa && (!g || !g.test(e))) {
                            if (y = v = x,
                            T = t,
                            k = 1 !== c && e,
                            1 === c && "object" !== t.nodeName.toLowerCase()) {
                                for (h = a(e),
                                (v = t.getAttribute("id")) ? y = v.replace(te, "\\$&") : t.setAttribute("id", y),
                                y = "[id='" + y + "'] ",
                                f = h.length; f--; )
                                    h[f] = y + ge(h[f]);
                                T = ee.test(e) && he(t.parentNode) || t,
                                k = h.join(",")
                            }
                            if (k)
                                try {
                                    return q.apply(r, T.querySelectorAll(k)),
                                    r
                                } catch (e) {} finally {
                                    v || t.removeAttribute("id")
                                }
                        }
                    }
                    return l(e.replace(B, "$1"), t, r, i)
                }
                function ae() {
                    var e = [];
                    return function t(n, i) {
                        return e.push(n + " ") > r.cacheLength && delete t[e.shift()],
                        t[n + " "] = i
                    }
                }
                function se(e) {
                    return e[x] = !0,
                    e
                }
                function le(e) {
                    var t = p.createElement("div");
                    try {
                        return !!e(t)
                    } catch (e) {
                        return !1
                    } finally {
                        t.parentNode && t.parentNode.removeChild(t),
                        t = null
                    }
                }
                function ue(e, t) {
                    for (var n = e.split("|"), i = e.length; i--; )
                        r.attrHandle[n[i]] = t
                }
                function ce(e, t) {
                    var n = t && e
                      , r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || D) - (~e.sourceIndex || D);
                    if (r)
                        return r;
                    if (n)
                        for (; n = n.nextSibling; )
                            if (n === t)
                                return -1;
                    return e ? 1 : -1
                }
                function fe(e) {
                    return function(t) {
                        return "input" === t.nodeName.toLowerCase() && t.type === e
                    }
                }
                function de(e) {
                    return function(t) {
                        var n = t.nodeName.toLowerCase();
                        return ("input" === n || "button" === n) && t.type === e
                    }
                }
                function pe(e) {
                    return se((function(t) {
                        return t = +t,
                        se((function(n, r) {
                            for (var i, o = e([], n.length, t), a = o.length; a--; )
                                n[i = o[a]] && (n[i] = !(r[i] = n[i]))
                        }
                        ))
                    }
                    ))
                }
                function he(e) {
                    return e && void 0 !== e.getElementsByTagName && e
                }
                for (t in n = oe.support = {},
                o = oe.isXML = function(e) {
                    var t = e && (e.ownerDocument || e).documentElement;
                    return !!t && "HTML" !== t.nodeName
                }
                ,
                d = oe.setDocument = function(e) {
                    var t, i, a = e ? e.ownerDocument || e : w;
                    return a !== p && 9 === a.nodeType && a.documentElement ? (p = a,
                    h = a.documentElement,
                    (i = a.defaultView) && i !== i.top && (i.addEventListener ? i.addEventListener("unload", ie, !1) : i.attachEvent && i.attachEvent("onunload", ie)),
                    m = !o(a),
                    n.attributes = le((function(e) {
                        return e.className = "i",
                        !e.getAttribute("className")
                    }
                    )),
                    n.getElementsByTagName = le((function(e) {
                        return e.appendChild(a.createComment("")),
                        !e.getElementsByTagName("*").length
                    }
                    )),
                    n.getElementsByClassName = K.test(a.getElementsByClassName),
                    n.getById = le((function(e) {
                        return h.appendChild(e).id = x,
                        !a.getElementsByName || !a.getElementsByName(x).length
                    }
                    )),
                    n.getById ? (r.find.ID = function(e, t) {
                        if (void 0 !== t.getElementById && m) {
                            var n = t.getElementById(e);
                            return n && n.parentNode ? [n] : []
                        }
                    }
                    ,
                    r.filter.ID = function(e) {
                        var t = e.replace(ne, re);
                        return function(e) {
                            return e.getAttribute("id") === t
                        }
                    }
                    ) : (delete r.find.ID,
                    r.filter.ID = function(e) {
                        var t = e.replace(ne, re);
                        return function(e) {
                            var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
                            return n && n.value === t
                        }
                    }
                    ),
                    r.find.TAG = n.getElementsByTagName ? function(e, t) {
                        return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0
                    }
                    : function(e, t) {
                        var n, r = [], i = 0, o = t.getElementsByTagName(e);
                        if ("*" === e) {
                            for (; n = o[i++]; )
                                1 === n.nodeType && r.push(n);
                            return r
                        }
                        return o
                    }
                    ,
                    r.find.CLASS = n.getElementsByClassName && function(e, t) {
                        return m ? t.getElementsByClassName(e) : void 0
                    }
                    ,
                    v = [],
                    g = [],
                    (n.qsa = K.test(a.querySelectorAll)) && (le((function(e) {
                        h.appendChild(e).innerHTML = "<a id='" + x + "'></a><select id='" + x + "-\f]' msallowcapture=''><option selected=''></option></select>",
                        e.querySelectorAll("[msallowcapture^='']").length && g.push("[*^$]=" + P + "*(?:''|\"\")"),
                        e.querySelectorAll("[selected]").length || g.push("\\[" + P + "*(?:value|" + M + ")"),
                        e.querySelectorAll("[id~=" + x + "-]").length || g.push("~="),
                        e.querySelectorAll(":checked").length || g.push(":checked"),
                        e.querySelectorAll("a#" + x + "+*").length || g.push(".#.+[+~]")
                    }
                    )),
                    le((function(e) {
                        var t = a.createElement("input");
                        t.setAttribute("type", "hidden"),
                        e.appendChild(t).setAttribute("name", "D"),
                        e.querySelectorAll("[name=d]").length && g.push("name" + P + "*[*^$|!~]?="),
                        e.querySelectorAll(":enabled").length || g.push(":enabled", ":disabled"),
                        e.querySelectorAll("*,:x"),
                        g.push(",.*:")
                    }
                    ))),
                    (n.matchesSelector = K.test(y = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && le((function(e) {
                        n.disconnectedMatch = y.call(e, "div"),
                        y.call(e, "[s!='']:x"),
                        v.push("!=", _)
                    }
                    )),
                    g = g.length && new RegExp(g.join("|")),
                    v = v.length && new RegExp(v.join("|")),
                    t = K.test(h.compareDocumentPosition),
                    b = t || K.test(h.contains) ? function(e, t) {
                        var n = 9 === e.nodeType ? e.documentElement : e
                          , r = t && t.parentNode;
                        return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
                    }
                    : function(e, t) {
                        if (t)
                            for (; t = t.parentNode; )
                                if (t === e)
                                    return !0;
                        return !1
                    }
                    ,
                    A = t ? function(e, t) {
                        if (e === t)
                            return f = !0,
                            0;
                        var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
                        return r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === a || e.ownerDocument === w && b(w, e) ? -1 : t === a || t.ownerDocument === w && b(w, t) ? 1 : c ? I(c, e) - I(c, t) : 0 : 4 & r ? -1 : 1)
                    }
                    : function(e, t) {
                        if (e === t)
                            return f = !0,
                            0;
                        var n, r = 0, i = e.parentNode, o = t.parentNode, s = [e], l = [t];
                        if (!i || !o)
                            return e === a ? -1 : t === a ? 1 : i ? -1 : o ? 1 : c ? I(c, e) - I(c, t) : 0;
                        if (i === o)
                            return ce(e, t);
                        for (n = e; n = n.parentNode; )
                            s.unshift(n);
                        for (n = t; n = n.parentNode; )
                            l.unshift(n);
                        for (; s[r] === l[r]; )
                            r++;
                        return r ? ce(s[r], l[r]) : s[r] === w ? -1 : l[r] === w ? 1 : 0
                    }
                    ,
                    a) : p
                }
                ,
                oe.matches = function(e, t) {
                    return oe(e, null, null, t)
                }
                ,
                oe.matchesSelector = function(e, t) {
                    if ((e.ownerDocument || e) !== p && d(e),
                    t = t.replace(X, "='$1']"),
                    !(!n.matchesSelector || !m || v && v.test(t) || g && g.test(t)))
                        try {
                            var r = y.call(e, t);
                            if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType)
                                return r
                        } catch (e) {}
                    return oe(t, p, null, [e]).length > 0
                }
                ,
                oe.contains = function(e, t) {
                    return (e.ownerDocument || e) !== p && d(e),
                    b(e, t)
                }
                ,
                oe.attr = function(e, t) {
                    (e.ownerDocument || e) !== p && d(e);
                    var i = r.attrHandle[t.toLowerCase()]
                      , o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !m) : void 0;
                    return void 0 !== o ? o : n.attributes || !m ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null
                }
                ,
                oe.error = function(e) {
                    throw new Error("Syntax error, unrecognized expression: " + e)
                }
                ,
                oe.uniqueSort = function(e) {
                    var t, r = [], i = 0, o = 0;
                    if (f = !n.detectDuplicates,
                    c = !n.sortStable && e.slice(0),
                    e.sort(A),
                    f) {
                        for (; t = e[o++]; )
                            t === e[o] && (i = r.push(o));
                        for (; i--; )
                            e.splice(r[i], 1)
                    }
                    return c = null,
                    e
                }
                ,
                i = oe.getText = function(e) {
                    var t, n = "", r = 0, o = e.nodeType;
                    if (o) {
                        if (1 === o || 9 === o || 11 === o) {
                            if ("string" == typeof e.textContent)
                                return e.textContent;
                            for (e = e.firstChild; e; e = e.nextSibling)
                                n += i(e)
                        } else if (3 === o || 4 === o)
                            return e.nodeValue
                    } else
                        for (; t = e[r++]; )
                            n += i(t);
                    return n
                }
                ,
                (r = oe.selectors = {
                    cacheLength: 50,
                    createPseudo: se,
                    match: Y,
                    attrHandle: {},
                    find: {},
                    relative: {
                        ">": {
                            dir: "parentNode",
                            first: !0
                        },
                        " ": {
                            dir: "parentNode"
                        },
                        "+": {
                            dir: "previousSibling",
                            first: !0
                        },
                        "~": {
                            dir: "previousSibling"
                        }
                    },
                    preFilter: {
                        ATTR: function(e) {
                            return e[1] = e[1].replace(ne, re),
                            e[3] = (e[3] || e[4] || e[5] || "").replace(ne, re),
                            "~=" === e[2] && (e[3] = " " + e[3] + " "),
                            e.slice(0, 4)
                        },
                        CHILD: function(e) {
                            return e[1] = e[1].toLowerCase(),
                            "nth" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]),
                            e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])),
                            e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && oe.error(e[0]),
                            e
                        },
                        PSEUDO: function(e) {
                            var t, n = !e[6] && e[2];
                            return Y.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && V.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t),
                            e[2] = n.slice(0, t)),
                            e.slice(0, 3))
                        }
                    },
                    filter: {
                        TAG: function(e) {
                            var t = e.replace(ne, re).toLowerCase();
                            return "*" === e ? function() {
                                return !0
                            }
                            : function(e) {
                                return e.nodeName && e.nodeName.toLowerCase() === t
                            }
                        },
                        CLASS: function(e) {
                            var t = C[e + " "];
                            return t || (t = new RegExp("(^|" + P + ")" + e + "(" + P + "|$)")) && C(e, (function(e) {
                                return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")
                            }
                            ))
                        },
                        ATTR: function(e, t, n) {
                            return function(r) {
                                var i = oe.attr(r, e);
                                return null == i ? "!=" === t : !t || (i += "",
                                "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace(z, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-"))
                            }
                        },
                        CHILD: function(e, t, n, r, i) {
                            var o = "nth" !== e.slice(0, 3)
                              , a = "last" !== e.slice(-4)
                              , s = "of-type" === t;
                            return 1 === r && 0 === i ? function(e) {
                                return !!e.parentNode
                            }
                            : function(t, n, l) {
                                var u, c, f, d, p, h, m = o !== a ? "nextSibling" : "previousSibling", g = t.parentNode, v = s && t.nodeName.toLowerCase(), y = !l && !s;
                                if (g) {
                                    if (o) {
                                        for (; m; ) {
                                            for (f = t; f = f[m]; )
                                                if (s ? f.nodeName.toLowerCase() === v : 1 === f.nodeType)
                                                    return !1;
                                            h = m = "only" === e && !h && "nextSibling"
                                        }
                                        return !0
                                    }
                                    if (h = [a ? g.firstChild : g.lastChild],
                                    a && y) {
                                        for (p = (u = (c = g[x] || (g[x] = {}))[e] || [])[0] === T && u[1],
                                        d = u[0] === T && u[2],
                                        f = p && g.childNodes[p]; f = ++p && f && f[m] || (d = p = 0) || h.pop(); )
                                            if (1 === f.nodeType && ++d && f === t) {
                                                c[e] = [T, p, d];
                                                break
                                            }
                                    } else if (y && (u = (t[x] || (t[x] = {}))[e]) && u[0] === T)
                                        d = u[1];
                                    else
                                        for (; (f = ++p && f && f[m] || (d = p = 0) || h.pop()) && ((s ? f.nodeName.toLowerCase() !== v : 1 !== f.nodeType) || !++d || (y && ((f[x] || (f[x] = {}))[e] = [T, d]),
                                        f !== t)); )
                                            ;
                                    return (d -= i) === r || d % r == 0 && d / r >= 0
                                }
                            }
                        },
                        PSEUDO: function(e, t) {
                            var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e);
                            return i[x] ? i(t) : i.length > 1 ? (n = [e, e, "", t],
                            r.setFilters.hasOwnProperty(e.toLowerCase()) ? se((function(e, n) {
                                for (var r, o = i(e, t), a = o.length; a--; )
                                    e[r = I(e, o[a])] = !(n[r] = o[a])
                            }
                            )) : function(e) {
                                return i(e, 0, n)
                            }
                            ) : i
                        }
                    },
                    pseudos: {
                        not: se((function(e) {
                            var t = []
                              , n = []
                              , r = s(e.replace(B, "$1"));
                            return r[x] ? se((function(e, t, n, i) {
                                for (var o, a = r(e, null, i, []), s = e.length; s--; )
                                    (o = a[s]) && (e[s] = !(t[s] = o))
                            }
                            )) : function(e, i, o) {
                                return t[0] = e,
                                r(t, null, o, n),
                                t[0] = null,
                                !n.pop()
                            }
                        }
                        )),
                        has: se((function(e) {
                            return function(t) {
                                return oe(e, t).length > 0
                            }
                        }
                        )),
                        contains: se((function(e) {
                            return e = e.replace(ne, re),
                            function(t) {
                                return (t.textContent || t.innerText || i(t)).indexOf(e) > -1
                            }
                        }
                        )),
                        lang: se((function(e) {
                            return Q.test(e || "") || oe.error("unsupported lang: " + e),
                            e = e.replace(ne, re).toLowerCase(),
                            function(t) {
                                var n;
                                do {
                                    if (n = m ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))
                                        return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-")
                                } while ((t = t.parentNode) && 1 === t.nodeType);
                                return !1
                            }
                        }
                        )),
                        target: function(t) {
                            var n = e.location && e.location.hash;
                            return n && n.slice(1) === t.id
                        },
                        root: function(e) {
                            return e === h
                        },
                        focus: function(e) {
                            return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
                        },
                        enabled: function(e) {
                            return !1 === e.disabled
                        },
                        disabled: function(e) {
                            return !0 === e.disabled
                        },
                        checked: function(e) {
                            var t = e.nodeName.toLowerCase();
                            return "input" === t && !!e.checked || "option" === t && !!e.selected
                        },
                        selected: function(e) {
                            return e.parentNode && e.parentNode.selectedIndex,
                            !0 === e.selected
                        },
                        empty: function(e) {
                            for (e = e.firstChild; e; e = e.nextSibling)
                                if (e.nodeType < 6)
                                    return !1;
                            return !0
                        },
                        parent: function(e) {
                            return !r.pseudos.empty(e)
                        },
                        header: function(e) {
                            return J.test(e.nodeName)
                        },
                        input: function(e) {
                            return G.test(e.nodeName)
                        },
                        button: function(e) {
                            var t = e.nodeName.toLowerCase();
                            return "input" === t && "button" === e.type || "button" === t
                        },
                        text: function(e) {
                            var t;
                            return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                        },
                        first: pe((function() {
                            return [0]
                        }
                        )),
                        last: pe((function(e, t) {
                            return [t - 1]
                        }
                        )),
                        eq: pe((function(e, t, n) {
                            return [0 > n ? n + t : n]
                        }
                        )),
                        even: pe((function(e, t) {
                            for (var n = 0; t > n; n += 2)
                                e.push(n);
                            return e
                        }
                        )),
                        odd: pe((function(e, t) {
                            for (var n = 1; t > n; n += 2)
                                e.push(n);
                            return e
                        }
                        )),
                        lt: pe((function(e, t, n) {
                            for (var r = 0 > n ? n + t : n; --r >= 0; )
                                e.push(r);
                            return e
                        }
                        )),
                        gt: pe((function(e, t, n) {
                            for (var r = 0 > n ? n + t : n; ++r < t; )
                                e.push(r);
                            return e
                        }
                        ))
                    }
                }).pseudos.nth = r.pseudos.eq,
                {
                    radio: !0,
                    checkbox: !0,
                    file: !0,
                    password: !0,
                    image: !0
                })
                    r.pseudos[t] = fe(t);
                for (t in {
                    submit: !0,
                    reset: !0
                })
                    r.pseudos[t] = de(t);
                function me() {}
                function ge(e) {
                    for (var t = 0, n = e.length, r = ""; n > t; t++)
                        r += e[t].value;
                    return r
                }
                function ve(e, t, n) {
                    var r = t.dir
                      , i = n && "parentNode" === r
                      , o = k++;
                    return t.first ? function(t, n, o) {
                        for (; t = t[r]; )
                            if (1 === t.nodeType || i)
                                return e(t, n, o)
                    }
                    : function(t, n, a) {
                        var s, l, u = [T, o];
                        if (a) {
                            for (; t = t[r]; )
                                if ((1 === t.nodeType || i) && e(t, n, a))
                                    return !0
                        } else
                            for (; t = t[r]; )
                                if (1 === t.nodeType || i) {
                                    if ((s = (l = t[x] || (t[x] = {}))[r]) && s[0] === T && s[1] === o)
                                        return u[2] = s[2];
                                    if (l[r] = u,
                                    u[2] = e(t, n, a))
                                        return !0
                                }
                    }
                }
                function ye(e) {
                    return e.length > 1 ? function(t, n, r) {
                        for (var i = e.length; i--; )
                            if (!e[i](t, n, r))
                                return !1;
                        return !0
                    }
                    : e[0]
                }
                function be(e, t, n, r, i) {
                    for (var o, a = [], s = 0, l = e.length, u = null != t; l > s; s++)
                        (o = e[s]) && (!n || n(o, r, i)) && (a.push(o),
                        u && t.push(s));
                    return a
                }
                function xe(e, t, n, r, i, o) {
                    return r && !r[x] && (r = xe(r)),
                    i && !i[x] && (i = xe(i, o)),
                    se((function(o, a, s, l) {
                        var u, c, f, d = [], p = [], h = a.length, m = o || function(e, t, n) {
                            for (var r = 0, i = t.length; i > r; r++)
                                oe(e, t[r], n);
                            return n
                        }(t || "*", s.nodeType ? [s] : s, []), g = !e || !o && t ? m : be(m, d, e, s, l), v = n ? i || (o ? e : h || r) ? [] : a : g;
                        if (n && n(g, v, s, l),
                        r)
                            for (u = be(v, p),
                            r(u, [], s, l),
                            c = u.length; c--; )
                                (f = u[c]) && (v[p[c]] = !(g[p[c]] = f));
                        if (o) {
                            if (i || e) {
                                if (i) {
                                    for (u = [],
                                    c = v.length; c--; )
                                        (f = v[c]) && u.push(g[c] = f);
                                    i(null, v = [], u, l)
                                }
                                for (c = v.length; c--; )
                                    (f = v[c]) && (u = i ? I(o, f) : d[c]) > -1 && (o[u] = !(a[u] = f))
                            }
                        } else
                            v = be(v === a ? v.splice(h, v.length) : v),
                            i ? i(null, a, v, l) : q.apply(a, v)
                    }
                    ))
                }
                function we(e) {
                    for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], l = a ? 1 : 0, c = ve((function(e) {
                        return e === t
                    }
                    ), s, !0), f = ve((function(e) {
                        return I(t, e) > -1
                    }
                    ), s, !0), d = [function(e, n, r) {
                        var i = !a && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r));
                        return t = null,
                        i
                    }
                    ]; o > l; l++)
                        if (n = r.relative[e[l].type])
                            d = [ve(ye(d), n)];
                        else {
                            if ((n = r.filter[e[l].type].apply(null, e[l].matches))[x]) {
                                for (i = ++l; o > i && !r.relative[e[i].type]; i++)
                                    ;
                                return xe(l > 1 && ye(d), l > 1 && ge(e.slice(0, l - 1).concat({
                                    value: " " === e[l - 2].type ? "*" : ""
                                })).replace(B, "$1"), n, i > l && we(e.slice(l, i)), o > i && we(e = e.slice(i)), o > i && ge(e))
                            }
                            d.push(n)
                        }
                    return ye(d)
                }
                function Te(e, t) {
                    var n = t.length > 0
                      , i = e.length > 0
                      , o = function(o, a, s, l, c) {
                        var f, d, h, m = 0, g = "0", v = o && [], y = [], b = u, x = o || i && r.find.TAG("*", c), w = T += null == b ? 1 : Math.random() || .1, k = x.length;
                        for (c && (u = a !== p && a); g !== k && null != (f = x[g]); g++) {
                            if (i && f) {
                                for (d = 0; h = e[d++]; )
                                    if (h(f, a, s)) {
                                        l.push(f);
                                        break
                                    }
                                c && (T = w)
                            }
                            n && ((f = !h && f) && m--,
                            o && v.push(f))
                        }
                        if (m += g,
                        n && g !== m) {
                            for (d = 0; h = t[d++]; )
                                h(v, y, a, s);
                            if (o) {
                                if (m > 0)
                                    for (; g--; )
                                        v[g] || y[g] || (y[g] = L.call(l));
                                y = be(y)
                            }
                            q.apply(l, y),
                            c && !o && y.length > 0 && m + t.length > 1 && oe.uniqueSort(l)
                        }
                        return c && (T = w,
                        u = b),
                        v
                    };
                    return n ? se(o) : o
                }
                return me.prototype = r.filters = r.pseudos,
                r.setFilters = new me,
                a = oe.tokenize = function(e, t) {
                    var n, i, o, a, s, l, u, c = E[e + " "];
                    if (c)
                        return t ? 0 : c.slice(0);
                    for (s = e,
                    l = [],
                    u = r.preFilter; s; ) {
                        for (a in (!n || (i = W.exec(s))) && (i && (s = s.slice(i[0].length) || s),
                        l.push(o = [])),
                        n = !1,
                        (i = U.exec(s)) && (n = i.shift(),
                        o.push({
                            value: n,
                            type: i[0].replace(B, " ")
                        }),
                        s = s.slice(n.length)),
                        r.filter)
                            !(i = Y[a].exec(s)) || u[a] && !(i = u[a](i)) || (n = i.shift(),
                            o.push({
                                value: n,
                                type: a,
                                matches: i
                            }),
                            s = s.slice(n.length));
                        if (!n)
                            break
                    }
                    return t ? s.length : s ? oe.error(e) : E(e, l).slice(0)
                }
                ,
                s = oe.compile = function(e, t) {
                    var n, r = [], i = [], o = S[e + " "];
                    if (!o) {
                        for (t || (t = a(e)),
                        n = t.length; n--; )
                            (o = we(t[n]))[x] ? r.push(o) : i.push(o);
                        (o = S(e, Te(i, r))).selector = e
                    }
                    return o
                }
                ,
                l = oe.select = function(e, t, i, o) {
                    var l, u, c, f, d, p = "function" == typeof e && e, h = !o && a(e = p.selector || e);
                    if (i = i || [],
                    1 === h.length) {
                        if ((u = h[0] = h[0].slice(0)).length > 2 && "ID" === (c = u[0]).type && n.getById && 9 === t.nodeType && m && r.relative[u[1].type]) {
                            if (!(t = (r.find.ID(c.matches[0].replace(ne, re), t) || [])[0]))
                                return i;
                            p && (t = t.parentNode),
                            e = e.slice(u.shift().value.length)
                        }
                        for (l = Y.needsContext.test(e) ? 0 : u.length; l-- && (c = u[l],
                        !r.relative[f = c.type]); )
                            if ((d = r.find[f]) && (o = d(c.matches[0].replace(ne, re), ee.test(u[0].type) && he(t.parentNode) || t))) {
                                if (u.splice(l, 1),
                                !(e = o.length && ge(u)))
                                    return q.apply(i, o),
                                    i;
                                break
                            }
                    }
                    return (p || s(e, h))(o, t, !m, i, ee.test(e) && he(t.parentNode) || t),
                    i
                }
                ,
                n.sortStable = x.split("").sort(A).join("") === x,
                n.detectDuplicates = !!f,
                d(),
                n.sortDetached = le((function(e) {
                    return 1 & e.compareDocumentPosition(p.createElement("div"))
                }
                )),
                le((function(e) {
                    return e.innerHTML = "<a href='#'></a>",
                    "#" === e.firstChild.getAttribute("href")
                }
                )) || ue("type|href|height|width", (function(e, t, n) {
                    return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
                }
                )),
                n.attributes && le((function(e) {
                    return e.innerHTML = "<input/>",
                    e.firstChild.setAttribute("value", ""),
                    "" === e.firstChild.getAttribute("value")
                }
                )) || ue("value", (function(e, t, n) {
                    return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue
                }
                )),
                le((function(e) {
                    return null == e.getAttribute("disabled")
                }
                )) || ue(M, (function(e, t, n) {
                    var r;
                    return n ? void 0 : !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
                }
                )),
                oe
            }(r);
            g.find = T,
            g.expr = T.selectors,
            g.expr[":"] = g.expr.pseudos,
            g.unique = T.uniqueSort,
            g.text = T.getText,
            g.isXMLDoc = T.isXML,
            g.contains = T.contains;
            var k = g.expr.match.needsContext
              , C = /^<(\w+)\s*\/?>(?:<\/\1>|)$/
              , E = /^.[^:#\[\.,]*$/;
            function S(e, t, n) {
                if (g.isFunction(t))
                    return g.grep(e, (function(e, r) {
                        return !!t.call(e, r, e) !== n
                    }
                    ));
                if (t.nodeType)
                    return g.grep(e, (function(e) {
                        return e === t !== n
                    }
                    ));
                if ("string" == typeof t) {
                    if (E.test(t))
                        return g.filter(t, e, n);
                    t = g.filter(t, e)
                }
                return g.grep(e, (function(e) {
                    return u.call(t, e) >= 0 !== n
                }
                ))
            }
            g.filter = function(e, t, n) {
                var r = t[0];
                return n && (e = ":not(" + e + ")"),
                1 === t.length && 1 === r.nodeType ? g.find.matchesSelector(r, e) ? [r] : [] : g.find.matches(e, g.grep(t, (function(e) {
                    return 1 === e.nodeType
                }
                )))
            }
            ,
            g.fn.extend({
                find: function(e) {
                    var t, n = this.length, r = [], i = this;
                    if ("string" != typeof e)
                        return this.pushStack(g(e).filter((function() {
                            for (t = 0; n > t; t++)
                                if (g.contains(i[t], this))
                                    return !0
                        }
                        )));
                    for (t = 0; n > t; t++)
                        g.find(e, i[t], r);
                    return (r = this.pushStack(n > 1 ? g.unique(r) : r)).selector = this.selector ? this.selector + " " + e : e,
                    r
                },
                filter: function(e) {
                    return this.pushStack(S(this, e || [], !1))
                },
                not: function(e) {
                    return this.pushStack(S(this, e || [], !0))
                },
                is: function(e) {
                    return !!S(this, "string" == typeof e && k.test(e) ? g(e) : e || [], !1).length
                }
            });
            var A, D = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
            (g.fn.init = function(e, t) {
                var n, r;
                if (!e)
                    return this;
                if ("string" == typeof e) {
                    if (!(n = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : D.exec(e)) || !n[1] && t)
                        return !t || t.jquery ? (t || A).find(e) : this.constructor(t).find(e);
                    if (n[1]) {
                        if (t = t instanceof g ? t[0] : t,
                        g.merge(this, g.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : h, !0)),
                        C.test(n[1]) && g.isPlainObject(t))
                            for (n in t)
                                g.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]);
                        return this
                    }
                    return (r = h.getElementById(n[2])) && r.parentNode && (this.length = 1,
                    this[0] = r),
                    this.context = h,
                    this.selector = e,
                    this
                }
                return e.nodeType ? (this.context = this[0] = e,
                this.length = 1,
                this) : g.isFunction(e) ? void 0 !== A.ready ? A.ready(e) : e(g) : (void 0 !== e.selector && (this.selector = e.selector,
                this.context = e.context),
                g.makeArray(e, this))
            }
            ).prototype = g.fn,
            A = g(h);
            var N = /^(?:parents|prev(?:Until|All))/
              , j = {
                children: !0,
                contents: !0,
                next: !0,
                prev: !0
            };
            function L(e, t) {
                for (; (e = e[t]) && 1 !== e.nodeType; )
                    ;
                return e
            }
            g.extend({
                dir: function(e, t, n) {
                    for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )
                        if (1 === e.nodeType) {
                            if (i && g(e).is(n))
                                break;
                            r.push(e)
                        }
                    return r
                },
                sibling: function(e, t) {
                    for (var n = []; e; e = e.nextSibling)
                        1 === e.nodeType && e !== t && n.push(e);
                    return n
                }
            }),
            g.fn.extend({
                has: function(e) {
                    var t = g(e, this)
                      , n = t.length;
                    return this.filter((function() {
                        for (var e = 0; n > e; e++)
                            if (g.contains(this, t[e]))
                                return !0
                    }
                    ))
                },
                closest: function(e, t) {
                    for (var n, r = 0, i = this.length, o = [], a = k.test(e) || "string" != typeof e ? g(e, t || this.context) : 0; i > r; r++)
                        for (n = this[r]; n && n !== t; n = n.parentNode)
                            if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && g.find.matchesSelector(n, e))) {
                                o.push(n);
                                break
                            }
                    return this.pushStack(o.length > 1 ? g.unique(o) : o)
                },
                index: function(e) {
                    return e ? "string" == typeof e ? u.call(g(e), this[0]) : u.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
                },
                add: function(e, t) {
                    return this.pushStack(g.unique(g.merge(this.get(), g(e, t))))
                },
                addBack: function(e) {
                    return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
                }
            }),
            g.each({
                parent: function(e) {
                    var t = e.parentNode;
                    return t && 11 !== t.nodeType ? t : null
                },
                parents: function(e) {
                    return g.dir(e, "parentNode")
                },
                parentsUntil: function(e, t, n) {
                    return g.dir(e, "parentNode", n)
                },
                next: function(e) {
                    return L(e, "nextSibling")
                },
                prev: function(e) {
                    return L(e, "previousSibling")
                },
                nextAll: function(e) {
                    return g.dir(e, "nextSibling")
                },
                prevAll: function(e) {
                    return g.dir(e, "previousSibling")
                },
                nextUntil: function(e, t, n) {
                    return g.dir(e, "nextSibling", n)
                },
                prevUntil: function(e, t, n) {
                    return g.dir(e, "previousSibling", n)
                },
                siblings: function(e) {
                    return g.sibling((e.parentNode || {}).firstChild, e)
                },
                children: function(e) {
                    return g.sibling(e.firstChild)
                },
                contents: function(e) {
                    return e.contentDocument || g.merge([], e.childNodes)
                }
            }, (function(e, t) {
                g.fn[e] = function(n, r) {
                    var i = g.map(this, t, n);
                    return "Until" !== e.slice(-5) && (r = n),
                    r && "string" == typeof r && (i = g.filter(r, i)),
                    this.length > 1 && (j[e] || g.unique(i),
                    N.test(e) && i.reverse()),
                    this.pushStack(i)
                }
            }
            ));
            var O, q = /\S+/g, $ = {};
            function I() {
                h.removeEventListener("DOMContentLoaded", I, !1),
                r.removeEventListener("load", I, !1),
                g.ready()
            }
            g.Callbacks = function(e) {
                e = "string" == typeof e ? $[e] || function(e) {
                    var t = $[e] = {};
                    return g.each(e.match(q) || [], (function(e, n) {
                        t[n] = !0
                    }
                    )),
                    t
                }(e) : g.extend({}, e);
                var t, n, r, i, o, a, s = [], l = !e.once && [], u = function(f) {
                    for (t = e.memory && f,
                    n = !0,
                    a = i || 0,
                    i = 0,
                    o = s.length,
                    r = !0; s && o > a; a++)
                        if (!1 === s[a].apply(f[0], f[1]) && e.stopOnFalse) {
                            t = !1;
                            break
                        }
                    r = !1,
                    s && (l ? l.length && u(l.shift()) : t ? s = [] : c.disable())
                }, c = {
                    add: function() {
                        if (s) {
                            var n = s.length;
                            !function t(n) {
                                g.each(n, (function(n, r) {
                                    var i = g.type(r);
                                    "function" === i ? e.unique && c.has(r) || s.push(r) : r && r.length && "string" !== i && t(r)
                                }
                                ))
                            }(arguments),
                            r ? o = s.length : t && (i = n,
                            u(t))
                        }
                        return this
                    },
                    remove: function() {
                        return s && g.each(arguments, (function(e, t) {
                            for (var n; (n = g.inArray(t, s, n)) > -1; )
                                s.splice(n, 1),
                                r && (o >= n && o--,
                                a >= n && a--)
                        }
                        )),
                        this
                    },
                    has: function(e) {
                        return e ? g.inArray(e, s) > -1 : !(!s || !s.length)
                    },
                    empty: function() {
                        return s = [],
                        o = 0,
                        this
                    },
                    disable: function() {
                        return s = l = t = void 0,
                        this
                    },
                    disabled: function() {
                        return !s
                    },
                    lock: function() {
                        return l = void 0,
                        t || c.disable(),
                        this
                    },
                    locked: function() {
                        return !l
                    },
                    fireWith: function(e, t) {
                        return !s || n && !l || (t = [e, (t = t || []).slice ? t.slice() : t],
                        r ? l.push(t) : u(t)),
                        this
                    },
                    fire: function() {
                        return c.fireWith(this, arguments),
                        this
                    },
                    fired: function() {
                        return !!n
                    }
                };
                return c
            }
            ,
            g.extend({
                Deferred: function(e) {
                    var t = [["resolve", "done", g.Callbacks("once memory"), "resolved"], ["reject", "fail", g.Callbacks("once memory"), "rejected"], ["notify", "progress", g.Callbacks("memory")]]
                      , n = "pending"
                      , r = {
                        state: function() {
                            return n
                        },
                        always: function() {
                            return i.done(arguments).fail(arguments),
                            this
                        },
                        then: function() {
                            var e = arguments;
                            return g.Deferred((function(n) {
                                g.each(t, (function(t, o) {
                                    var a = g.isFunction(e[t]) && e[t];
                                    i[o[1]]((function() {
                                        var e = a && a.apply(this, arguments);
                                        e && g.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o[0] + "With"](this === r ? n.promise() : this, a ? [e] : arguments)
                                    }
                                    ))
                                }
                                )),
                                e = null
                            }
                            )).promise()
                        },
                        promise: function(e) {
                            return null != e ? g.extend(e, r) : r
                        }
                    }
                      , i = {};
                    return r.pipe = r.then,
                    g.each(t, (function(e, o) {
                        var a = o[2]
                          , s = o[3];
                        r[o[1]] = a.add,
                        s && a.add((function() {
                            n = s
                        }
                        ), t[1 ^ e][2].disable, t[2][2].lock),
                        i[o[0]] = function() {
                            return i[o[0] + "With"](this === i ? r : this, arguments),
                            this
                        }
                        ,
                        i[o[0] + "With"] = a.fireWith
                    }
                    )),
                    r.promise(i),
                    e && e.call(i, i),
                    i
                },
                when: function(e) {
                    var t, n, r, i = 0, o = a.call(arguments), s = o.length, l = 1 !== s || e && g.isFunction(e.promise) ? s : 0, u = 1 === l ? e : g.Deferred(), c = function(e, n, r) {
                        return function(i) {
                            n[e] = this,
                            r[e] = arguments.length > 1 ? a.call(arguments) : i,
                            r === t ? u.notifyWith(n, r) : --l || u.resolveWith(n, r)
                        }
                    };
                    if (s > 1)
                        for (t = new Array(s),
                        n = new Array(s),
                        r = new Array(s); s > i; i++)
                            o[i] && g.isFunction(o[i].promise) ? o[i].promise().done(c(i, r, o)).fail(u.reject).progress(c(i, n, t)) : --l;
                    return l || u.resolveWith(r, o),
                    u.promise()
                }
            }),
            g.fn.ready = function(e) {
                return g.ready.promise().done(e),
                this
            }
            ,
            g.extend({
                isReady: !1,
                readyWait: 1,
                holdReady: function(e) {
                    e ? g.readyWait++ : g.ready(!0)
                },
                ready: function(e) {
                    (!0 === e ? --g.readyWait : g.isReady) || (g.isReady = !0,
                    !0 !== e && --g.readyWait > 0 || (O.resolveWith(h, [g]),
                    g.fn.triggerHandler && (g(h).triggerHandler("ready"),
                    g(h).off("ready"))))
                }
            }),
            g.ready.promise = function(e) {
                return O || (O = g.Deferred(),
                "complete" === h.readyState ? setTimeout(g.ready) : (h.addEventListener("DOMContentLoaded", I, !1),
                r.addEventListener("load", I, !1))),
                O.promise(e)
            }
            ,
            g.ready.promise();
            var M = g.access = function(e, t, n, r, i, o, a) {
                var s = 0
                  , l = e.length
                  , u = null == n;
                if ("object" === g.type(n))
                    for (s in i = !0,
                    n)
                        g.access(e, t, s, n[s], !0, o, a);
                else if (void 0 !== r && (i = !0,
                g.isFunction(r) || (a = !0),
                u && (a ? (t.call(e, r),
                t = null) : (u = t,
                t = function(e, t, n) {
                    return u.call(g(e), n)
                }
                )),
                t))
                    for (; l > s; s++)
                        t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
                return i ? e : u ? t.call(e) : l ? t(e[0], n) : o
            }
            ;
            function P() {
                Object.defineProperty(this.cache = {}, 0, {
                    get: function() {
                        return {}
                    }
                }),
                this.expando = g.expando + P.uid++
            }
            g.acceptData = function(e) {
                return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
            }
            ,
            P.uid = 1,
            P.accepts = g.acceptData,
            P.prototype = {
                key: function(e) {
                    if (!P.accepts(e))
                        return 0;
                    var t = {}
                      , n = e[this.expando];
                    if (!n) {
                        n = P.uid++;
                        try {
                            t[this.expando] = {
                                value: n
                            },
                            Object.defineProperties(e, t)
                        } catch (r) {
                            t[this.expando] = n,
                            g.extend(e, t)
                        }
                    }
                    return this.cache[n] || (this.cache[n] = {}),
                    n
                },
                set: function(e, t, n) {
                    var r, i = this.key(e), o = this.cache[i];
                    if ("string" == typeof t)
                        o[t] = n;
                    else if (g.isEmptyObject(o))
                        g.extend(this.cache[i], t);
                    else
                        for (r in t)
                            o[r] = t[r];
                    return o
                },
                get: function(e, t) {
                    var n = this.cache[this.key(e)];
                    return void 0 === t ? n : n[t]
                },
                access: function(e, t, n) {
                    var r;
                    return void 0 === t || t && "string" == typeof t && void 0 === n ? void 0 !== (r = this.get(e, t)) ? r : this.get(e, g.camelCase(t)) : (this.set(e, t, n),
                    void 0 !== n ? n : t)
                },
                remove: function(e, t) {
                    var n, r, i, o = this.key(e), a = this.cache[o];
                    if (void 0 === t)
                        this.cache[o] = {};
                    else {
                        g.isArray(t) ? r = t.concat(t.map(g.camelCase)) : (i = g.camelCase(t),
                        r = t in a ? [t, i] : (r = i)in a ? [r] : r.match(q) || []),
                        n = r.length;
                        for (; n--; )
                            delete a[r[n]]
                    }
                },
                hasData: function(e) {
                    return !g.isEmptyObject(this.cache[e[this.expando]] || {})
                },
                discard: function(e) {
                    e[this.expando] && delete this.cache[e[this.expando]]
                }
            };
            var H = new P
              , R = new P
              , F = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
              , _ = /([A-Z])/g;
            function z(e, t, n) {
                var r;
                if (void 0 === n && 1 === e.nodeType)
                    if (r = "data-" + t.replace(_, "-$1").toLowerCase(),
                    "string" == typeof (n = e.getAttribute(r))) {
                        try {
                            n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : F.test(n) ? g.parseJSON(n) : n)
                        } catch (e) {}
                        R.set(e, t, n)
                    } else
                        n = void 0;
                return n
            }
            g.extend({
                hasData: function(e) {
                    return R.hasData(e) || H.hasData(e)
                },
                data: function(e, t, n) {
                    return R.access(e, t, n)
                },
                removeData: function(e, t) {
                    R.remove(e, t)
                },
                _data: function(e, t, n) {
                    return H.access(e, t, n)
                },
                _removeData: function(e, t) {
                    H.remove(e, t)
                }
            }),
            g.fn.extend({
                data: function(e, t) {
                    var n, r, i, o = this[0], a = o && o.attributes;
                    if (void 0 === e) {
                        if (this.length && (i = R.get(o),
                        1 === o.nodeType && !H.get(o, "hasDataAttrs"))) {
                            for (n = a.length; n--; )
                                a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = g.camelCase(r.slice(5)),
                                z(o, r, i[r]));
                            H.set(o, "hasDataAttrs", !0)
                        }
                        return i
                    }
                    return "object" == typeof e ? this.each((function() {
                        R.set(this, e)
                    }
                    )) : M(this, (function(t) {
                        var n, r = g.camelCase(e);
                        if (o && void 0 === t) {
                            if (void 0 !== (n = R.get(o, e)))
                                return n;
                            if (void 0 !== (n = R.get(o, r)))
                                return n;
                            if (void 0 !== (n = z(o, r, void 0)))
                                return n
                        } else
                            this.each((function() {
                                var n = R.get(this, r);
                                R.set(this, r, t),
                                -1 !== e.indexOf("-") && void 0 !== n && R.set(this, e, t)
                            }
                            ))
                    }
                    ), null, t, arguments.length > 1, null, !0)
                },
                removeData: function(e) {
                    return this.each((function() {
                        R.remove(this, e)
                    }
                    ))
                }
            }),
            g.extend({
                queue: function(e, t, n) {
                    var r;
                    return e ? (t = (t || "fx") + "queue",
                    r = H.get(e, t),
                    n && (!r || g.isArray(n) ? r = H.access(e, t, g.makeArray(n)) : r.push(n)),
                    r || []) : void 0
                },
                dequeue: function(e, t) {
                    t = t || "fx";
                    var n = g.queue(e, t)
                      , r = n.length
                      , i = n.shift()
                      , o = g._queueHooks(e, t);
                    "inprogress" === i && (i = n.shift(),
                    r--),
                    i && ("fx" === t && n.unshift("inprogress"),
                    delete o.stop,
                    i.call(e, (function() {
                        g.dequeue(e, t)
                    }
                    ), o)),
                    !r && o && o.empty.fire()
                },
                _queueHooks: function(e, t) {
                    var n = t + "queueHooks";
                    return H.get(e, n) || H.access(e, n, {
                        empty: g.Callbacks("once memory").add((function() {
                            H.remove(e, [t + "queue", n])
                        }
                        ))
                    })
                }
            }),
            g.fn.extend({
                queue: function(e, t) {
                    var n = 2;
                    return "string" != typeof e && (t = e,
                    e = "fx",
                    n--),
                    arguments.length < n ? g.queue(this[0], e) : void 0 === t ? this : this.each((function() {
                        var n = g.queue(this, e, t);
                        g._queueHooks(this, e),
                        "fx" === e && "inprogress" !== n[0] && g.dequeue(this, e)
                    }
                    ))
                },
                dequeue: function(e) {
                    return this.each((function() {
                        g.dequeue(this, e)
                    }
                    ))
                },
                clearQueue: function(e) {
                    return this.queue(e || "fx", [])
                },
                promise: function(e, t) {
                    var n, r = 1, i = g.Deferred(), o = this, a = this.length, s = function() {
                        --r || i.resolveWith(o, [o])
                    };
                    for ("string" != typeof e && (t = e,
                    e = void 0),
                    e = e || "fx"; a--; )
                        (n = H.get(o[a], e + "queueHooks")) && n.empty && (r++,
                        n.empty.add(s));
                    return s(),
                    i.promise(t)
                }
            });
            var B = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
              , W = ["Top", "Right", "Bottom", "Left"]
              , U = function(e, t) {
                return e = t || e,
                "none" === g.css(e, "display") || !g.contains(e.ownerDocument, e)
            }
              , X = /^(?:checkbox|radio)$/i;
            !function() {
                var e = h.createDocumentFragment().appendChild(h.createElement("div"))
                  , t = h.createElement("input");
                t.setAttribute("type", "radio"),
                t.setAttribute("checked", "checked"),
                t.setAttribute("name", "t"),
                e.appendChild(t),
                p.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked,
                e.innerHTML = "<textarea>x</textarea>",
                p.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue
            }();
            var V = "undefined";
            p.focusinBubbles = "onfocusin"in r;
            var Q = /^key/
              , Y = /^(?:mouse|pointer|contextmenu)|click/
              , G = /^(?:focusinfocus|focusoutblur)$/
              , J = /^([^.]*)(?:\.(.+)|)$/;
            function K() {
                return !0
            }
            function Z() {
                return !1
            }
            function ee() {
                try {
                    return h.activeElement
                } catch (e) {}
            }
            g.event = {
                global: {},
                add: function(e, t, n, r, i) {
                    var o, a, s, l, u, c, f, d, p, h, m, v = H.get(e);
                    if (v)
                        for (n.handler && (n = (o = n).handler,
                        i = o.selector),
                        n.guid || (n.guid = g.guid++),
                        (l = v.events) || (l = v.events = {}),
                        (a = v.handle) || (a = v.handle = function(t) {
                            return typeof g !== V && g.event.triggered !== t.type ? g.event.dispatch.apply(e, arguments) : void 0
                        }
                        ),
                        u = (t = (t || "").match(q) || [""]).length; u--; )
                            p = m = (s = J.exec(t[u]) || [])[1],
                            h = (s[2] || "").split(".").sort(),
                            p && (f = g.event.special[p] || {},
                            p = (i ? f.delegateType : f.bindType) || p,
                            f = g.event.special[p] || {},
                            c = g.extend({
                                type: p,
                                origType: m,
                                data: r,
                                handler: n,
                                guid: n.guid,
                                selector: i,
                                needsContext: i && g.expr.match.needsContext.test(i),
                                namespace: h.join(".")
                            }, o),
                            (d = l[p]) || ((d = l[p] = []).delegateCount = 0,
                            f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(p, a, !1)),
                            f.add && (f.add.call(e, c),
                            c.handler.guid || (c.handler.guid = n.guid)),
                            i ? d.splice(d.delegateCount++, 0, c) : d.push(c),
                            g.event.global[p] = !0)
                },
                remove: function(e, t, n, r, i) {
                    var o, a, s, l, u, c, f, d, p, h, m, v = H.hasData(e) && H.get(e);
                    if (v && (l = v.events)) {
                        for (u = (t = (t || "").match(q) || [""]).length; u--; )
                            if (p = m = (s = J.exec(t[u]) || [])[1],
                            h = (s[2] || "").split(".").sort(),
                            p) {
                                for (f = g.event.special[p] || {},
                                d = l[p = (r ? f.delegateType : f.bindType) || p] || [],
                                s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                                a = o = d.length; o--; )
                                    c = d[o],
                                    !i && m !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (d.splice(o, 1),
                                    c.selector && d.delegateCount--,
                                    f.remove && f.remove.call(e, c));
                                a && !d.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || g.removeEvent(e, p, v.handle),
                                delete l[p])
                            } else
                                for (p in l)
                                    g.event.remove(e, p + t[u], n, r, !0);
                        g.isEmptyObject(l) && (delete v.handle,
                        H.remove(e, "events"))
                    }
                },
                trigger: function(e, t, n, i) {
                    var o, a, s, l, u, c, f, p = [n || h], m = d.call(e, "type") ? e.type : e, v = d.call(e, "namespace") ? e.namespace.split(".") : [];
                    if (a = s = n = n || h,
                    3 !== n.nodeType && 8 !== n.nodeType && !G.test(m + g.event.triggered) && (m.indexOf(".") >= 0 && (v = m.split("."),
                    m = v.shift(),
                    v.sort()),
                    u = m.indexOf(":") < 0 && "on" + m,
                    (e = e[g.expando] ? e : new g.Event(m,"object" == typeof e && e)).isTrigger = i ? 2 : 3,
                    e.namespace = v.join("."),
                    e.namespace_re = e.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
                    e.result = void 0,
                    e.target || (e.target = n),
                    t = null == t ? [e] : g.makeArray(t, [e]),
                    f = g.event.special[m] || {},
                    i || !f.trigger || !1 !== f.trigger.apply(n, t))) {
                        if (!i && !f.noBubble && !g.isWindow(n)) {
                            for (l = f.delegateType || m,
                            G.test(l + m) || (a = a.parentNode); a; a = a.parentNode)
                                p.push(a),
                                s = a;
                            s === (n.ownerDocument || h) && p.push(s.defaultView || s.parentWindow || r)
                        }
                        for (o = 0; (a = p[o++]) && !e.isPropagationStopped(); )
                            e.type = o > 1 ? l : f.bindType || m,
                            (c = (H.get(a, "events") || {})[e.type] && H.get(a, "handle")) && c.apply(a, t),
                            (c = u && a[u]) && c.apply && g.acceptData(a) && (e.result = c.apply(a, t),
                            !1 === e.result && e.preventDefault());
                        return e.type = m,
                        i || e.isDefaultPrevented() || f._default && !1 !== f._default.apply(p.pop(), t) || !g.acceptData(n) || u && g.isFunction(n[m]) && !g.isWindow(n) && ((s = n[u]) && (n[u] = null),
                        g.event.triggered = m,
                        n[m](),
                        g.event.triggered = void 0,
                        s && (n[u] = s)),
                        e.result
                    }
                },
                dispatch: function(e) {
                    e = g.event.fix(e);
                    var t, n, r, i, o, s = [], l = a.call(arguments), u = (H.get(this, "events") || {})[e.type] || [], c = g.event.special[e.type] || {};
                    if (l[0] = e,
                    e.delegateTarget = this,
                    !c.preDispatch || !1 !== c.preDispatch.call(this, e)) {
                        for (s = g.event.handlers.call(this, e, u),
                        t = 0; (i = s[t++]) && !e.isPropagationStopped(); )
                            for (e.currentTarget = i.elem,
                            n = 0; (o = i.handlers[n++]) && !e.isImmediatePropagationStopped(); )
                                (!e.namespace_re || e.namespace_re.test(o.namespace)) && (e.handleObj = o,
                                e.data = o.data,
                                void 0 !== (r = ((g.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, l)) && !1 === (e.result = r) && (e.preventDefault(),
                                e.stopPropagation()));
                        return c.postDispatch && c.postDispatch.call(this, e),
                        e.result
                    }
                },
                handlers: function(e, t) {
                    var n, r, i, o, a = [], s = t.delegateCount, l = e.target;
                    if (s && l.nodeType && (!e.button || "click" !== e.type))
                        for (; l !== this; l = l.parentNode || this)
                            if (!0 !== l.disabled || "click" !== e.type) {
                                for (r = [],
                                n = 0; s > n; n++)
                                    void 0 === r[i = (o = t[n]).selector + " "] && (r[i] = o.needsContext ? g(i, this).index(l) >= 0 : g.find(i, this, null, [l]).length),
                                    r[i] && r.push(o);
                                r.length && a.push({
                                    elem: l,
                                    handlers: r
                                })
                            }
                    return s < t.length && a.push({
                        elem: this,
                        handlers: t.slice(s)
                    }),
                    a
                },
                props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
                fixHooks: {},
                keyHooks: {
                    props: "char charCode key keyCode".split(" "),
                    filter: function(e, t) {
                        return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode),
                        e
                    }
                },
                mouseHooks: {
                    props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
                    filter: function(e, t) {
                        var n, r, i, o = t.button;
                        return null == e.pageX && null != t.clientX && (r = (n = e.target.ownerDocument || h).documentElement,
                        i = n.body,
                        e.pageX = t.clientX + (r && r.scrollLeft || i && i.scrollLeft || 0) - (r && r.clientLeft || i && i.clientLeft || 0),
                        e.pageY = t.clientY + (r && r.scrollTop || i && i.scrollTop || 0) - (r && r.clientTop || i && i.clientTop || 0)),
                        e.which || void 0 === o || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0),
                        e
                    }
                },
                fix: function(e) {
                    if (e[g.expando])
                        return e;
                    var t, n, r, i = e.type, o = e, a = this.fixHooks[i];
                    for (a || (this.fixHooks[i] = a = Y.test(i) ? this.mouseHooks : Q.test(i) ? this.keyHooks : {}),
                    r = a.props ? this.props.concat(a.props) : this.props,
                    e = new g.Event(o),
                    t = r.length; t--; )
                        e[n = r[t]] = o[n];
                    return e.target || (e.target = h),
                    3 === e.target.nodeType && (e.target = e.target.parentNode),
                    a.filter ? a.filter(e, o) : e
                },
                special: {
                    load: {
                        noBubble: !0
                    },
                    focus: {
                        trigger: function() {
                            return this !== ee() && this.focus ? (this.focus(),
                            !1) : void 0
                        },
                        delegateType: "focusin"
                    },
                    blur: {
                        trigger: function() {
                            return this === ee() && this.blur ? (this.blur(),
                            !1) : void 0
                        },
                        delegateType: "focusout"
                    },
                    click: {
                        trigger: function() {
                            return "checkbox" === this.type && this.click && g.nodeName(this, "input") ? (this.click(),
                            !1) : void 0
                        },
                        _default: function(e) {
                            return g.nodeName(e.target, "a")
                        }
                    },
                    beforeunload: {
                        postDispatch: function(e) {
                            void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                        }
                    }
                },
                simulate: function(e, t, n, r) {
                    var i = g.extend(new g.Event, n, {
                        type: e,
                        isSimulated: !0,
                        originalEvent: {}
                    });
                    r ? g.event.trigger(i, null, t) : g.event.dispatch.call(t, i),
                    i.isDefaultPrevented() && n.preventDefault()
                }
            },
            g.removeEvent = function(e, t, n) {
                e.removeEventListener && e.removeEventListener(t, n, !1)
            }
            ,
            g.Event = function(e, t) {
                return this instanceof g.Event ? (e && e.type ? (this.originalEvent = e,
                this.type = e.type,
                this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? K : Z) : this.type = e,
                t && g.extend(this, t),
                this.timeStamp = e && e.timeStamp || g.now(),
                void (this[g.expando] = !0)) : new g.Event(e,t)
            }
            ,
            g.Event.prototype = {
                isDefaultPrevented: Z,
                isPropagationStopped: Z,
                isImmediatePropagationStopped: Z,
                preventDefault: function() {
                    var e = this.originalEvent;
                    this.isDefaultPrevented = K,
                    e && e.preventDefault && e.preventDefault()
                },
                stopPropagation: function() {
                    var e = this.originalEvent;
                    this.isPropagationStopped = K,
                    e && e.stopPropagation && e.stopPropagation()
                },
                stopImmediatePropagation: function() {
                    var e = this.originalEvent;
                    this.isImmediatePropagationStopped = K,
                    e && e.stopImmediatePropagation && e.stopImmediatePropagation(),
                    this.stopPropagation()
                }
            },
            g.each({
                mouseenter: "mouseover",
                mouseleave: "mouseout",
                pointerenter: "pointerover",
                pointerleave: "pointerout"
            }, (function(e, t) {
                g.event.special[e] = {
                    delegateType: t,
                    bindType: t,
                    handle: function(e) {
                        var n, r = this, i = e.relatedTarget, o = e.handleObj;
                        return (!i || i !== r && !g.contains(r, i)) && (e.type = o.origType,
                        n = o.handler.apply(this, arguments),
                        e.type = t),
                        n
                    }
                }
            }
            )),
            p.focusinBubbles || g.each({
                focus: "focusin",
                blur: "focusout"
            }, (function(e, t) {
                var n = function(e) {
                    g.event.simulate(t, e.target, g.event.fix(e), !0)
                };
                g.event.special[t] = {
                    setup: function() {
                        var r = this.ownerDocument || this
                          , i = H.access(r, t);
                        i || r.addEventListener(e, n, !0),
                        H.access(r, t, (i || 0) + 1)
                    },
                    teardown: function() {
                        var r = this.ownerDocument || this
                          , i = H.access(r, t) - 1;
                        i ? H.access(r, t, i) : (r.removeEventListener(e, n, !0),
                        H.remove(r, t))
                    }
                }
            }
            )),
            g.fn.extend({
                on: function(e, t, n, r, i) {
                    var o, a;
                    if ("object" == typeof e) {
                        for (a in "string" != typeof t && (n = n || t,
                        t = void 0),
                        e)
                            this.on(a, t, n, e[a], i);
                        return this
                    }
                    if (null == n && null == r ? (r = t,
                    n = t = void 0) : null == r && ("string" == typeof t ? (r = n,
                    n = void 0) : (r = n,
                    n = t,
                    t = void 0)),
                    !1 === r)
                        r = Z;
                    else if (!r)
                        return this;
                    return 1 === i && (o = r,
                    (r = function(e) {
                        return g().off(e),
                        o.apply(this, arguments)
                    }
                    ).guid = o.guid || (o.guid = g.guid++)),
                    this.each((function() {
                        g.event.add(this, e, r, n, t)
                    }
                    ))
                },
                one: function(e, t, n, r) {
                    return this.on(e, t, n, r, 1)
                },
                off: function(e, t, n) {
                    var r, i;
                    if (e && e.preventDefault && e.handleObj)
                        return r = e.handleObj,
                        g(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler),
                        this;
                    if ("object" == typeof e) {
                        for (i in e)
                            this.off(i, t, e[i]);
                        return this
                    }
                    return (!1 === t || "function" == typeof t) && (n = t,
                    t = void 0),
                    !1 === n && (n = Z),
                    this.each((function() {
                        g.event.remove(this, e, n, t)
                    }
                    ))
                },
                trigger: function(e, t) {
                    return this.each((function() {
                        g.event.trigger(e, t, this)
                    }
                    ))
                },
                triggerHandler: function(e, t) {
                    var n = this[0];
                    return n ? g.event.trigger(e, t, n, !0) : void 0
                }
            });
            var te = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi
              , ne = /<([\w:]+)/
              , re = /<|&#?\w+;/
              , ie = /<(?:script|style|link)/i
              , oe = /checked\s*(?:[^=]|=\s*.checked.)/i
              , ae = /^$|\/(?:java|ecma)script/i
              , se = /^true\/(.*)/
              , le = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g
              , ue = {
                option: [1, "<select multiple='multiple'>", "</select>"],
                thead: [1, "<table>", "</table>"],
                col: [2, "<table><colgroup>", "</colgroup></table>"],
                tr: [2, "<table><tbody>", "</tbody></table>"],
                td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
                _default: [0, "", ""]
            };
            function ce(e, t) {
                return g.nodeName(e, "table") && g.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
            }
            function fe(e) {
                return e.type = (null !== e.getAttribute("type")) + "/" + e.type,
                e
            }
            function de(e) {
                var t = se.exec(e.type);
                return t ? e.type = t[1] : e.removeAttribute("type"),
                e
            }
            function pe(e, t) {
                for (var n = 0, r = e.length; r > n; n++)
                    H.set(e[n], "globalEval", !t || H.get(t[n], "globalEval"))
            }
            function he(e, t) {
                var n, r, i, o, a, s, l, u;
                if (1 === t.nodeType) {
                    if (H.hasData(e) && (o = H.access(e),
                    a = H.set(t, o),
                    u = o.events))
                        for (i in delete a.handle,
                        a.events = {},
                        u)
                            for (n = 0,
                            r = u[i].length; r > n; n++)
                                g.event.add(t, i, u[i][n]);
                    R.hasData(e) && (s = R.access(e),
                    l = g.extend({}, s),
                    R.set(t, l))
                }
            }
            function me(e, t) {
                var n = e.getElementsByTagName ? e.getElementsByTagName(t || "*") : e.querySelectorAll ? e.querySelectorAll(t || "*") : [];
                return void 0 === t || t && g.nodeName(e, t) ? g.merge([e], n) : n
            }
            function ge(e, t) {
                var n = t.nodeName.toLowerCase();
                "input" === n && X.test(e.type) ? t.checked = e.checked : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue)
            }
            ue.optgroup = ue.option,
            ue.tbody = ue.tfoot = ue.colgroup = ue.caption = ue.thead,
            ue.th = ue.td,
            g.extend({
                clone: function(e, t, n) {
                    var r, i, o, a, s = e.cloneNode(!0), l = g.contains(e.ownerDocument, e);
                    if (!(p.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || g.isXMLDoc(e)))
                        for (a = me(s),
                        r = 0,
                        i = (o = me(e)).length; i > r; r++)
                            ge(o[r], a[r]);
                    if (t)
                        if (n)
                            for (o = o || me(e),
                            a = a || me(s),
                            r = 0,
                            i = o.length; i > r; r++)
                                he(o[r], a[r]);
                        else
                            he(e, s);
                    return (a = me(s, "script")).length > 0 && pe(a, !l && me(e, "script")),
                    s
                },
                buildFragment: function(e, t, n, r) {
                    for (var i, o, a, s, l, u, c = t.createDocumentFragment(), f = [], d = 0, p = e.length; p > d; d++)
                        if ((i = e[d]) || 0 === i)
                            if ("object" === g.type(i))
                                g.merge(f, i.nodeType ? [i] : i);
                            else if (re.test(i)) {
                                for (o = o || c.appendChild(t.createElement("div")),
                                a = (ne.exec(i) || ["", ""])[1].toLowerCase(),
                                s = ue[a] || ue._default,
                                o.innerHTML = s[1] + i.replace(te, "<$1></$2>") + s[2],
                                u = s[0]; u--; )
                                    o = o.lastChild;
                                g.merge(f, o.childNodes),
                                (o = c.firstChild).textContent = ""
                            } else
                                f.push(t.createTextNode(i));
                    for (c.textContent = "",
                    d = 0; i = f[d++]; )
                        if ((!r || -1 === g.inArray(i, r)) && (l = g.contains(i.ownerDocument, i),
                        o = me(c.appendChild(i), "script"),
                        l && pe(o),
                        n))
                            for (u = 0; i = o[u++]; )
                                ae.test(i.type || "") && n.push(i);
                    return c
                },
                cleanData: function(e) {
                    for (var t, n, r, i, o = g.event.special, a = 0; void 0 !== (n = e[a]); a++) {
                        if (g.acceptData(n) && (i = n[H.expando]) && (t = H.cache[i])) {
                            if (t.events)
                                for (r in t.events)
                                    o[r] ? g.event.remove(n, r) : g.removeEvent(n, r, t.handle);
                            H.cache[i] && delete H.cache[i]
                        }
                        delete R.cache[n[R.expando]]
                    }
                }
            }),
            g.fn.extend({
                text: function(e) {
                    return M(this, (function(e) {
                        return void 0 === e ? g.text(this) : this.empty().each((function() {
                            (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = e)
                        }
                        ))
                    }
                    ), null, e, arguments.length)
                },
                append: function() {
                    return this.domManip(arguments, (function(e) {
                        1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || ce(this, e).appendChild(e)
                    }
                    ))
                },
                prepend: function() {
                    return this.domManip(arguments, (function(e) {
                        if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                            var t = ce(this, e);
                            t.insertBefore(e, t.firstChild)
                        }
                    }
                    ))
                },
                before: function() {
                    return this.domManip(arguments, (function(e) {
                        this.parentNode && this.parentNode.insertBefore(e, this)
                    }
                    ))
                },
                after: function() {
                    return this.domManip(arguments, (function(e) {
                        this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
                    }
                    ))
                },
                remove: function(e, t) {
                    for (var n, r = e ? g.filter(e, this) : this, i = 0; null != (n = r[i]); i++)
                        t || 1 !== n.nodeType || g.cleanData(me(n)),
                        n.parentNode && (t && g.contains(n.ownerDocument, n) && pe(me(n, "script")),
                        n.parentNode.removeChild(n));
                    return this
                },
                empty: function() {
                    for (var e, t = 0; null != (e = this[t]); t++)
                        1 === e.nodeType && (g.cleanData(me(e, !1)),
                        e.textContent = "");
                    return this
                },
                clone: function(e, t) {
                    return e = null != e && e,
                    t = null == t ? e : t,
                    this.map((function() {
                        return g.clone(this, e, t)
                    }
                    ))
                },
                html: function(e) {
                    return M(this, (function(e) {
                        var t = this[0] || {}
                          , n = 0
                          , r = this.length;
                        if (void 0 === e && 1 === t.nodeType)
                            return t.innerHTML;
                        if ("string" == typeof e && !ie.test(e) && !ue[(ne.exec(e) || ["", ""])[1].toLowerCase()]) {
                            e = e.replace(te, "<$1></$2>");
                            try {
                                for (; r > n; n++)
                                    1 === (t = this[n] || {}).nodeType && (g.cleanData(me(t, !1)),
                                    t.innerHTML = e);
                                t = 0
                            } catch (e) {}
                        }
                        t && this.empty().append(e)
                    }
                    ), null, e, arguments.length)
                },
                replaceWith: function() {
                    var e = arguments[0];
                    return this.domManip(arguments, (function(t) {
                        e = this.parentNode,
                        g.cleanData(me(this)),
                        e && e.replaceChild(t, this)
                    }
                    )),
                    e && (e.length || e.nodeType) ? this : this.remove()
                },
                detach: function(e) {
                    return this.remove(e, !0)
                },
                domManip: function(e, t) {
                    e = s.apply([], e);
                    var n, r, i, o, a, l, u = 0, c = this.length, f = this, d = c - 1, h = e[0], m = g.isFunction(h);
                    if (m || c > 1 && "string" == typeof h && !p.checkClone && oe.test(h))
                        return this.each((function(n) {
                            var r = f.eq(n);
                            m && (e[0] = h.call(this, n, r.html())),
                            r.domManip(e, t)
                        }
                        ));
                    if (c && (r = (n = g.buildFragment(e, this[0].ownerDocument, !1, this)).firstChild,
                    1 === n.childNodes.length && (n = r),
                    r)) {
                        for (o = (i = g.map(me(n, "script"), fe)).length; c > u; u++)
                            a = n,
                            u !== d && (a = g.clone(a, !0, !0),
                            o && g.merge(i, me(a, "script"))),
                            t.call(this[u], a, u);
                        if (o)
                            for (l = i[i.length - 1].ownerDocument,
                            g.map(i, de),
                            u = 0; o > u; u++)
                                a = i[u],
                                ae.test(a.type || "") && !H.access(a, "globalEval") && g.contains(l, a) && (a.src ? g._evalUrl && g._evalUrl(a.src) : g.globalEval(a.textContent.replace(le, "")))
                    }
                    return this
                }
            }),
            g.each({
                appendTo: "append",
                prependTo: "prepend",
                insertBefore: "before",
                insertAfter: "after",
                replaceAll: "replaceWith"
            }, (function(e, t) {
                g.fn[e] = function(e) {
                    for (var n, r = [], i = g(e), o = i.length - 1, a = 0; o >= a; a++)
                        n = a === o ? this : this.clone(!0),
                        g(i[a])[t](n),
                        l.apply(r, n.get());
                    return this.pushStack(r)
                }
            }
            ));
            var ve, ye = {};
            function be(e, t) {
                var n, i = g(t.createElement(e)).appendTo(t.body), o = r.getDefaultComputedStyle && (n = r.getDefaultComputedStyle(i[0])) ? n.display : g.css(i[0], "display");
                return i.detach(),
                o
            }
            function xe(e) {
                var t = h
                  , n = ye[e];
                return n || ("none" !== (n = be(e, t)) && n || ((t = (ve = (ve || g("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentDocument).write(),
                t.close(),
                n = be(e, t),
                ve.detach()),
                ye[e] = n),
                n
            }
            var we = /^margin/
              , Te = new RegExp("^(" + B + ")(?!px)[a-z%]+$","i")
              , ke = function(e) {
                return e.ownerDocument.defaultView.opener ? e.ownerDocument.defaultView.getComputedStyle(e, null) : r.getComputedStyle(e, null)
            };
            function Ce(e, t, n) {
                var r, i, o, a, s = e.style;
                return (n = n || ke(e)) && (a = n.getPropertyValue(t) || n[t]),
                n && ("" !== a || g.contains(e.ownerDocument, e) || (a = g.style(e, t)),
                Te.test(a) && we.test(t) && (r = s.width,
                i = s.minWidth,
                o = s.maxWidth,
                s.minWidth = s.maxWidth = s.width = a,
                a = n.width,
                s.width = r,
                s.minWidth = i,
                s.maxWidth = o)),
                void 0 !== a ? a + "" : a
            }
            function Ee(e, t) {
                return {
                    get: function() {
                        return e() ? void delete this.get : (this.get = t).apply(this, arguments)
                    }
                }
            }
            !function() {
                var e, t, n = h.documentElement, i = h.createElement("div"), o = h.createElement("div");
                if (o.style) {
                    function a() {
                        o.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",
                        o.innerHTML = "",
                        n.appendChild(i);
                        var a = r.getComputedStyle(o, null);
                        e = "1%" !== a.top,
                        t = "4px" === a.width,
                        n.removeChild(i)
                    }
                    o.style.backgroundClip = "content-box",
                    o.cloneNode(!0).style.backgroundClip = "",
                    p.clearCloneStyle = "content-box" === o.style.backgroundClip,
                    i.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",
                    i.appendChild(o),
                    r.getComputedStyle && g.extend(p, {
                        pixelPosition: function() {
                            return a(),
                            e
                        },
                        boxSizingReliable: function() {
                            return null == t && a(),
                            t
                        },
                        reliableMarginRight: function() {
                            var e, t = o.appendChild(h.createElement("div"));
                            return t.style.cssText = o.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",
                            t.style.marginRight = t.style.width = "0",
                            o.style.width = "1px",
                            n.appendChild(i),
                            e = !parseFloat(r.getComputedStyle(t, null).marginRight),
                            n.removeChild(i),
                            o.removeChild(t),
                            e
                        }
                    })
                }
            }(),
            g.swap = function(e, t, n, r) {
                var i, o, a = {};
                for (o in t)
                    a[o] = e.style[o],
                    e.style[o] = t[o];
                for (o in i = n.apply(e, r || []),
                t)
                    e.style[o] = a[o];
                return i
            }
            ;
            var Se = /^(none|table(?!-c[ea]).+)/
              , Ae = new RegExp("^(" + B + ")(.*)$","i")
              , De = new RegExp("^([+-])=(" + B + ")","i")
              , Ne = {
                position: "absolute",
                visibility: "hidden",
                display: "block"
            }
              , je = {
                letterSpacing: "0",
                fontWeight: "400"
            }
              , Le = ["Webkit", "O", "Moz", "ms"];
            function Oe(e, t) {
                if (t in e)
                    return t;
                for (var n = t[0].toUpperCase() + t.slice(1), r = t, i = Le.length; i--; )
                    if ((t = Le[i] + n)in e)
                        return t;
                return r
            }
            function qe(e, t, n) {
                var r = Ae.exec(t);
                return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
            }
            function $e(e, t, n, r, i) {
                for (var o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; 4 > o; o += 2)
                    "margin" === n && (a += g.css(e, n + W[o], !0, i)),
                    r ? ("content" === n && (a -= g.css(e, "padding" + W[o], !0, i)),
                    "margin" !== n && (a -= g.css(e, "border" + W[o] + "Width", !0, i))) : (a += g.css(e, "padding" + W[o], !0, i),
                    "padding" !== n && (a += g.css(e, "border" + W[o] + "Width", !0, i)));
                return a
            }
            function Ie(e, t, n) {
                var r = !0
                  , i = "width" === t ? e.offsetWidth : e.offsetHeight
                  , o = ke(e)
                  , a = "border-box" === g.css(e, "boxSizing", !1, o);
                if (0 >= i || null == i) {
                    if ((0 > (i = Ce(e, t, o)) || null == i) && (i = e.style[t]),
                    Te.test(i))
                        return i;
                    r = a && (p.boxSizingReliable() || i === e.style[t]),
                    i = parseFloat(i) || 0
                }
                return i + $e(e, t, n || (a ? "border" : "content"), r, o) + "px"
            }
            function Me(e, t) {
                for (var n, r, i, o = [], a = 0, s = e.length; s > a; a++)
                    (r = e[a]).style && (o[a] = H.get(r, "olddisplay"),
                    n = r.style.display,
                    t ? (o[a] || "none" !== n || (r.style.display = ""),
                    "" === r.style.display && U(r) && (o[a] = H.access(r, "olddisplay", xe(r.nodeName)))) : (i = U(r),
                    "none" === n && i || H.set(r, "olddisplay", i ? n : g.css(r, "display"))));
                for (a = 0; s > a; a++)
                    (r = e[a]).style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? o[a] || "" : "none"));
                return e
            }
            function Pe(e, t, n, r, i) {
                return new Pe.prototype.init(e,t,n,r,i)
            }
            g.extend({
                cssHooks: {
                    opacity: {
                        get: function(e, t) {
                            if (t) {
                                var n = Ce(e, "opacity");
                                return "" === n ? "1" : n
                            }
                        }
                    }
                },
                cssNumber: {
                    columnCount: !0,
                    fillOpacity: !0,
                    flexGrow: !0,
                    flexShrink: !0,
                    fontWeight: !0,
                    lineHeight: !0,
                    opacity: !0,
                    order: !0,
                    orphans: !0,
                    widows: !0,
                    zIndex: !0,
                    zoom: !0
                },
                cssProps: {
                    float: "cssFloat"
                },
                style: function(e, t, n, r) {
                    if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                        var i, o, a, s = g.camelCase(t), l = e.style;
                        return t = g.cssProps[s] || (g.cssProps[s] = Oe(l, s)),
                        a = g.cssHooks[t] || g.cssHooks[s],
                        void 0 === n ? a && "get"in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t] : ("string" == (o = typeof n) && (i = De.exec(n)) && (n = (i[1] + 1) * i[2] + parseFloat(g.css(e, t)),
                        o = "number"),
                        void (null != n && n == n && ("number" !== o || g.cssNumber[s] || (n += "px"),
                        p.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"),
                        a && "set"in a && void 0 === (n = a.set(e, n, r)) || (l[t] = n))))
                    }
                },
                css: function(e, t, n, r) {
                    var i, o, a, s = g.camelCase(t);
                    return t = g.cssProps[s] || (g.cssProps[s] = Oe(e.style, s)),
                    (a = g.cssHooks[t] || g.cssHooks[s]) && "get"in a && (i = a.get(e, !0, n)),
                    void 0 === i && (i = Ce(e, t, r)),
                    "normal" === i && t in je && (i = je[t]),
                    "" === n || n ? (o = parseFloat(i),
                    !0 === n || g.isNumeric(o) ? o || 0 : i) : i
                }
            }),
            g.each(["height", "width"], (function(e, t) {
                g.cssHooks[t] = {
                    get: function(e, n, r) {
                        return n ? Se.test(g.css(e, "display")) && 0 === e.offsetWidth ? g.swap(e, Ne, (function() {
                            return Ie(e, t, r)
                        }
                        )) : Ie(e, t, r) : void 0
                    },
                    set: function(e, n, r) {
                        var i = r && ke(e);
                        return qe(0, n, r ? $e(e, t, r, "border-box" === g.css(e, "boxSizing", !1, i), i) : 0)
                    }
                }
            }
            )),
            g.cssHooks.marginRight = Ee(p.reliableMarginRight, (function(e, t) {
                return t ? g.swap(e, {
                    display: "inline-block"
                }, Ce, [e, "marginRight"]) : void 0
            }
            )),
            g.each({
                margin: "",
                padding: "",
                border: "Width"
            }, (function(e, t) {
                g.cssHooks[e + t] = {
                    expand: function(n) {
                        for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; 4 > r; r++)
                            i[e + W[r] + t] = o[r] || o[r - 2] || o[0];
                        return i
                    }
                },
                we.test(e) || (g.cssHooks[e + t].set = qe)
            }
            )),
            g.fn.extend({
                css: function(e, t) {
                    return M(this, (function(e, t, n) {
                        var r, i, o = {}, a = 0;
                        if (g.isArray(t)) {
                            for (r = ke(e),
                            i = t.length; i > a; a++)
                                o[t[a]] = g.css(e, t[a], !1, r);
                            return o
                        }
                        return void 0 !== n ? g.style(e, t, n) : g.css(e, t)
                    }
                    ), e, t, arguments.length > 1)
                },
                show: function() {
                    return Me(this, !0)
                },
                hide: function() {
                    return Me(this)
                },
                toggle: function(e) {
                    return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each((function() {
                        U(this) ? g(this).show() : g(this).hide()
                    }
                    ))
                }
            }),
            g.Tween = Pe,
            Pe.prototype = {
                constructor: Pe,
                init: function(e, t, n, r, i, o) {
                    this.elem = e,
                    this.prop = n,
                    this.easing = i || "swing",
                    this.options = t,
                    this.start = this.now = this.cur(),
                    this.end = r,
                    this.unit = o || (g.cssNumber[n] ? "" : "px")
                },
                cur: function() {
                    var e = Pe.propHooks[this.prop];
                    return e && e.get ? e.get(this) : Pe.propHooks._default.get(this)
                },
                run: function(e) {
                    var t, n = Pe.propHooks[this.prop];
                    return this.options.duration ? this.pos = t = g.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e,
                    this.now = (this.end - this.start) * t + this.start,
                    this.options.step && this.options.step.call(this.elem, this.now, this),
                    n && n.set ? n.set(this) : Pe.propHooks._default.set(this),
                    this
                }
            },
            Pe.prototype.init.prototype = Pe.prototype,
            Pe.propHooks = {
                _default: {
                    get: function(e) {
                        var t;
                        return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = g.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 : e.elem[e.prop]
                    },
                    set: function(e) {
                        g.fx.step[e.prop] ? g.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[g.cssProps[e.prop]] || g.cssHooks[e.prop]) ? g.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
                    }
                }
            },
            Pe.propHooks.scrollTop = Pe.propHooks.scrollLeft = {
                set: function(e) {
                    e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
                }
            },
            g.easing = {
                linear: function(e) {
                    return e
                },
                swing: function(e) {
                    return .5 - Math.cos(e * Math.PI) / 2
                }
            },
            g.fx = Pe.prototype.init,
            g.fx.step = {};
            var He, Re, Fe = /^(?:toggle|show|hide)$/, _e = new RegExp("^(?:([+-])=|)(" + B + ")([a-z%]*)$","i"), ze = /queueHooks$/, Be = [function(e, t, n) {
                var r, i, o, a, s, l, u, c = this, f = {}, d = e.style, p = e.nodeType && U(e), h = H.get(e, "fxshow");
                for (r in n.queue || (null == (s = g._queueHooks(e, "fx")).unqueued && (s.unqueued = 0,
                l = s.empty.fire,
                s.empty.fire = function() {
                    s.unqueued || l()
                }
                ),
                s.unqueued++,
                c.always((function() {
                    c.always((function() {
                        s.unqueued--,
                        g.queue(e, "fx").length || s.empty.fire()
                    }
                    ))
                }
                ))),
                1 === e.nodeType && ("height"in t || "width"in t) && (n.overflow = [d.overflow, d.overflowX, d.overflowY],
                "inline" === ("none" === (u = g.css(e, "display")) ? H.get(e, "olddisplay") || xe(e.nodeName) : u) && "none" === g.css(e, "float") && (d.display = "inline-block")),
                n.overflow && (d.overflow = "hidden",
                c.always((function() {
                    d.overflow = n.overflow[0],
                    d.overflowX = n.overflow[1],
                    d.overflowY = n.overflow[2]
                }
                ))),
                t)
                    if (i = t[r],
                    Fe.exec(i)) {
                        if (delete t[r],
                        o = o || "toggle" === i,
                        i === (p ? "hide" : "show")) {
                            if ("show" !== i || !h || void 0 === h[r])
                                continue;
                            p = !0
                        }
                        f[r] = h && h[r] || g.style(e, r)
                    } else
                        u = void 0;
                if (g.isEmptyObject(f))
                    "inline" === ("none" === u ? xe(e.nodeName) : u) && (d.display = u);
                else
                    for (r in h ? "hidden"in h && (p = h.hidden) : h = H.access(e, "fxshow", {}),
                    o && (h.hidden = !p),
                    p ? g(e).show() : c.done((function() {
                        g(e).hide()
                    }
                    )),
                    c.done((function() {
                        var t;
                        for (t in H.remove(e, "fxshow"),
                        f)
                            g.style(e, t, f[t])
                    }
                    )),
                    f)
                        a = Ve(p ? h[r] : 0, r, c),
                        r in h || (h[r] = a.start,
                        p && (a.end = a.start,
                        a.start = "width" === r || "height" === r ? 1 : 0))
            }
            ], We = {
                "*": [function(e, t) {
                    var n = this.createTween(e, t)
                      , r = n.cur()
                      , i = _e.exec(t)
                      , o = i && i[3] || (g.cssNumber[e] ? "" : "px")
                      , a = (g.cssNumber[e] || "px" !== o && +r) && _e.exec(g.css(n.elem, e))
                      , s = 1
                      , l = 20;
                    if (a && a[3] !== o) {
                        o = o || a[3],
                        i = i || [],
                        a = +r || 1;
                        do {
                            a /= s = s || ".5",
                            g.style(n.elem, e, a + o)
                        } while (s !== (s = n.cur() / r) && 1 !== s && --l)
                    }
                    return i && (a = n.start = +a || +r || 0,
                    n.unit = o,
                    n.end = i[1] ? a + (i[1] + 1) * i[2] : +i[2]),
                    n
                }
                ]
            };
            function Ue() {
                return setTimeout((function() {
                    He = void 0
                }
                )),
                He = g.now()
            }
            function Xe(e, t) {
                var n, r = 0, i = {
                    height: e
                };
                for (t = t ? 1 : 0; 4 > r; r += 2 - t)
                    i["margin" + (n = W[r])] = i["padding" + n] = e;
                return t && (i.opacity = i.width = e),
                i
            }
            function Ve(e, t, n) {
                for (var r, i = (We[t] || []).concat(We["*"]), o = 0, a = i.length; a > o; o++)
                    if (r = i[o].call(n, t, e))
                        return r
            }
            function Qe(e, t, n) {
                var r, i, o = 0, a = Be.length, s = g.Deferred().always((function() {
                    delete l.elem
                }
                )), l = function() {
                    if (i)
                        return !1;
                    for (var t = He || Ue(), n = Math.max(0, u.startTime + u.duration - t), r = 1 - (n / u.duration || 0), o = 0, a = u.tweens.length; a > o; o++)
                        u.tweens[o].run(r);
                    return s.notifyWith(e, [u, r, n]),
                    1 > r && a ? n : (s.resolveWith(e, [u]),
                    !1)
                }, u = s.promise({
                    elem: e,
                    props: g.extend({}, t),
                    opts: g.extend(!0, {
                        specialEasing: {}
                    }, n),
                    originalProperties: t,
                    originalOptions: n,
                    startTime: He || Ue(),
                    duration: n.duration,
                    tweens: [],
                    createTween: function(t, n) {
                        var r = g.Tween(e, u.opts, t, n, u.opts.specialEasing[t] || u.opts.easing);
                        return u.tweens.push(r),
                        r
                    },
                    stop: function(t) {
                        var n = 0
                          , r = t ? u.tweens.length : 0;
                        if (i)
                            return this;
                        for (i = !0; r > n; n++)
                            u.tweens[n].run(1);
                        return t ? s.resolveWith(e, [u, t]) : s.rejectWith(e, [u, t]),
                        this
                    }
                }), c = u.props;
                for (function(e, t) {
                    var n, r, i, o, a;
                    for (n in e)
                        if (i = t[r = g.camelCase(n)],
                        o = e[n],
                        g.isArray(o) && (i = o[1],
                        o = e[n] = o[0]),
                        n !== r && (e[r] = o,
                        delete e[n]),
                        (a = g.cssHooks[r]) && "expand"in a)
                            for (n in o = a.expand(o),
                            delete e[r],
                            o)
                                n in e || (e[n] = o[n],
                                t[n] = i);
                        else
                            t[r] = i
                }(c, u.opts.specialEasing); a > o; o++)
                    if (r = Be[o].call(u, e, c, u.opts))
                        return r;
                return g.map(c, Ve, u),
                g.isFunction(u.opts.start) && u.opts.start.call(e, u),
                g.fx.timer(g.extend(l, {
                    elem: e,
                    anim: u,
                    queue: u.opts.queue
                })),
                u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
            }
            g.Animation = g.extend(Qe, {
                tweener: function(e, t) {
                    g.isFunction(e) ? (t = e,
                    e = ["*"]) : e = e.split(" ");
                    for (var n, r = 0, i = e.length; i > r; r++)
                        n = e[r],
                        We[n] = We[n] || [],
                        We[n].unshift(t)
                },
                prefilter: function(e, t) {
                    t ? Be.unshift(e) : Be.push(e)
                }
            }),
            g.speed = function(e, t, n) {
                var r = e && "object" == typeof e ? g.extend({}, e) : {
                    complete: n || !n && t || g.isFunction(e) && e,
                    duration: e,
                    easing: n && t || t && !g.isFunction(t) && t
                };
                return r.duration = g.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in g.fx.speeds ? g.fx.speeds[r.duration] : g.fx.speeds._default,
                (null == r.queue || !0 === r.queue) && (r.queue = "fx"),
                r.old = r.complete,
                r.complete = function() {
                    g.isFunction(r.old) && r.old.call(this),
                    r.queue && g.dequeue(this, r.queue)
                }
                ,
                r
            }
            ,
            g.fn.extend({
                fadeTo: function(e, t, n, r) {
                    return this.filter(U).css("opacity", 0).show().end().animate({
                        opacity: t
                    }, e, n, r)
                },
                animate: function(e, t, n, r) {
                    var i = g.isEmptyObject(e)
                      , o = g.speed(t, n, r)
                      , a = function() {
                        var t = Qe(this, g.extend({}, e), o);
                        (i || H.get(this, "finish")) && t.stop(!0)
                    };
                    return a.finish = a,
                    i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
                },
                stop: function(e, t, n) {
                    var r = function(e) {
                        var t = e.stop;
                        delete e.stop,
                        t(n)
                    };
                    return "string" != typeof e && (n = t,
                    t = e,
                    e = void 0),
                    t && !1 !== e && this.queue(e || "fx", []),
                    this.each((function() {
                        var t = !0
                          , i = null != e && e + "queueHooks"
                          , o = g.timers
                          , a = H.get(this);
                        if (i)
                            a[i] && a[i].stop && r(a[i]);
                        else
                            for (i in a)
                                a[i] && a[i].stop && ze.test(i) && r(a[i]);
                        for (i = o.length; i--; )
                            o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n),
                            t = !1,
                            o.splice(i, 1));
                        (t || !n) && g.dequeue(this, e)
                    }
                    ))
                },
                finish: function(e) {
                    return !1 !== e && (e = e || "fx"),
                    this.each((function() {
                        var t, n = H.get(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = g.timers, a = r ? r.length : 0;
                        for (n.finish = !0,
                        g.queue(this, e, []),
                        i && i.stop && i.stop.call(this, !0),
                        t = o.length; t--; )
                            o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0),
                            o.splice(t, 1));
                        for (t = 0; a > t; t++)
                            r[t] && r[t].finish && r[t].finish.call(this);
                        delete n.finish
                    }
                    ))
                }
            }),
            g.each(["toggle", "show", "hide"], (function(e, t) {
                var n = g.fn[t];
                g.fn[t] = function(e, r, i) {
                    return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(Xe(t, !0), e, r, i)
                }
            }
            )),
            g.each({
                slideDown: Xe("show"),
                slideUp: Xe("hide"),
                slideToggle: Xe("toggle"),
                fadeIn: {
                    opacity: "show"
                },
                fadeOut: {
                    opacity: "hide"
                },
                fadeToggle: {
                    opacity: "toggle"
                }
            }, (function(e, t) {
                g.fn[e] = function(e, n, r) {
                    return this.animate(t, e, n, r)
                }
            }
            )),
            g.timers = [],
            g.fx.tick = function() {
                var e, t = 0, n = g.timers;
                for (He = g.now(); t < n.length; t++)
                    (e = n[t])() || n[t] !== e || n.splice(t--, 1);
                n.length || g.fx.stop(),
                He = void 0
            }
            ,
            g.fx.timer = function(e) {
                g.timers.push(e),
                e() ? g.fx.start() : g.timers.pop()
            }
            ,
            g.fx.interval = 13,
            g.fx.start = function() {
                Re || (Re = setInterval(g.fx.tick, g.fx.interval))
            }
            ,
            g.fx.stop = function() {
                clearInterval(Re),
                Re = null
            }
            ,
            g.fx.speeds = {
                slow: 600,
                fast: 200,
                _default: 400
            },
            g.fn.delay = function(e, t) {
                return e = g.fx && g.fx.speeds[e] || e,
                t = t || "fx",
                this.queue(t, (function(t, n) {
                    var r = setTimeout(t, e);
                    n.stop = function() {
                        clearTimeout(r)
                    }
                }
                ))
            }
            ,
            function() {
                var e = h.createElement("input")
                  , t = h.createElement("select")
                  , n = t.appendChild(h.createElement("option"));
                e.type = "checkbox",
                p.checkOn = "" !== e.value,
                p.optSelected = n.selected,
                t.disabled = !0,
                p.optDisabled = !n.disabled,
                (e = h.createElement("input")).value = "t",
                e.type = "radio",
                p.radioValue = "t" === e.value
            }();
            var Ye, Ge = g.expr.attrHandle;
            g.fn.extend({
                attr: function(e, t) {
                    return M(this, g.attr, e, t, arguments.length > 1)
                },
                removeAttr: function(e) {
                    return this.each((function() {
                        g.removeAttr(this, e)
                    }
                    ))
                }
            }),
            g.extend({
                attr: function(e, t, n) {
                    var r, i, o = e.nodeType;
                    if (e && 3 !== o && 8 !== o && 2 !== o)
                        return typeof e.getAttribute === V ? g.prop(e, t, n) : (1 === o && g.isXMLDoc(e) || (t = t.toLowerCase(),
                        r = g.attrHooks[t] || (g.expr.match.bool.test(t) ? Ye : void 0)),
                        void 0 === n ? r && "get"in r && null !== (i = r.get(e, t)) ? i : null == (i = g.find.attr(e, t)) ? void 0 : i : null !== n ? r && "set"in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""),
                        n) : void g.removeAttr(e, t))
                },
                removeAttr: function(e, t) {
                    var n, r, i = 0, o = t && t.match(q);
                    if (o && 1 === e.nodeType)
                        for (; n = o[i++]; )
                            r = g.propFix[n] || n,
                            g.expr.match.bool.test(n) && (e[r] = !1),
                            e.removeAttribute(n)
                },
                attrHooks: {
                    type: {
                        set: function(e, t) {
                            if (!p.radioValue && "radio" === t && g.nodeName(e, "input")) {
                                var n = e.value;
                                return e.setAttribute("type", t),
                                n && (e.value = n),
                                t
                            }
                        }
                    }
                }
            }),
            Ye = {
                set: function(e, t, n) {
                    return !1 === t ? g.removeAttr(e, n) : e.setAttribute(n, n),
                    n
                }
            },
            g.each(g.expr.match.bool.source.match(/\w+/g), (function(e, t) {
                var n = Ge[t] || g.find.attr;
                Ge[t] = function(e, t, r) {
                    var i, o;
                    return r || (o = Ge[t],
                    Ge[t] = i,
                    i = null != n(e, t, r) ? t.toLowerCase() : null,
                    Ge[t] = o),
                    i
                }
            }
            ));
            var Je = /^(?:input|select|textarea|button)$/i;
            g.fn.extend({
                prop: function(e, t) {
                    return M(this, g.prop, e, t, arguments.length > 1)
                },
                removeProp: function(e) {
                    return this.each((function() {
                        delete this[g.propFix[e] || e]
                    }
                    ))
                }
            }),
            g.extend({
                propFix: {
                    for: "htmlFor",
                    class: "className"
                },
                prop: function(e, t, n) {
                    var r, i, o = e.nodeType;
                    if (e && 3 !== o && 8 !== o && 2 !== o)
                        return (1 !== o || !g.isXMLDoc(e)) && (t = g.propFix[t] || t,
                        i = g.propHooks[t]),
                        void 0 !== n ? i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get"in i && null !== (r = i.get(e, t)) ? r : e[t]
                },
                propHooks: {
                    tabIndex: {
                        get: function(e) {
                            return e.hasAttribute("tabindex") || Je.test(e.nodeName) || e.href ? e.tabIndex : -1
                        }
                    }
                }
            }),
            p.optSelected || (g.propHooks.selected = {
                get: function(e) {
                    var t = e.parentNode;
                    return t && t.parentNode && t.parentNode.selectedIndex,
                    null
                }
            }),
            g.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], (function() {
                g.propFix[this.toLowerCase()] = this
            }
            ));
            var Ke = /[\t\r\n\f]/g;
            g.fn.extend({
                addClass: function(e) {
                    var t, n, r, i, o, a, s = "string" == typeof e && e, l = 0, u = this.length;
                    if (g.isFunction(e))
                        return this.each((function(t) {
                            g(this).addClass(e.call(this, t, this.className))
                        }
                        ));
                    if (s)
                        for (t = (e || "").match(q) || []; u > l; l++)
                            if (r = 1 === (n = this[l]).nodeType && (n.className ? (" " + n.className + " ").replace(Ke, " ") : " ")) {
                                for (o = 0; i = t[o++]; )
                                    r.indexOf(" " + i + " ") < 0 && (r += i + " ");
                                a = g.trim(r),
                                n.className !== a && (n.className = a)
                            }
                    return this
                },
                removeClass: function(e) {
                    var t, n, r, i, o, a, s = 0 === arguments.length || "string" == typeof e && e, l = 0, u = this.length;
                    if (g.isFunction(e))
                        return this.each((function(t) {
                            g(this).removeClass(e.call(this, t, this.className))
                        }
                        ));
                    if (s)
                        for (t = (e || "").match(q) || []; u > l; l++)
                            if (r = 1 === (n = this[l]).nodeType && (n.className ? (" " + n.className + " ").replace(Ke, " ") : "")) {
                                for (o = 0; i = t[o++]; )
                                    for (; r.indexOf(" " + i + " ") >= 0; )
                                        r = r.replace(" " + i + " ", " ");
                                a = e ? g.trim(r) : "",
                                n.className !== a && (n.className = a)
                            }
                    return this
                },
                toggleClass: function(e, t) {
                    var n = typeof e;
                    return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : this.each(g.isFunction(e) ? function(n) {
                        g(this).toggleClass(e.call(this, n, this.className, t), t)
                    }
                    : function() {
                        if ("string" === n)
                            for (var t, r = 0, i = g(this), o = e.match(q) || []; t = o[r++]; )
                                i.hasClass(t) ? i.removeClass(t) : i.addClass(t);
                        else
                            (n === V || "boolean" === n) && (this.className && H.set(this, "__className__", this.className),
                            this.className = this.className || !1 === e ? "" : H.get(this, "__className__") || "")
                    }
                    )
                },
                hasClass: function(e) {
                    for (var t = " " + e + " ", n = 0, r = this.length; r > n; n++)
                        if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(Ke, " ").indexOf(t) >= 0)
                            return !0;
                    return !1
                }
            });
            var Ze = /\r/g;
            g.fn.extend({
                val: function(e) {
                    var t, n, r, i = this[0];
                    return arguments.length ? (r = g.isFunction(e),
                    this.each((function(n) {
                        var i;
                        1 === this.nodeType && (null == (i = r ? e.call(this, n, g(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : g.isArray(i) && (i = g.map(i, (function(e) {
                            return null == e ? "" : e + ""
                        }
                        ))),
                        (t = g.valHooks[this.type] || g.valHooks[this.nodeName.toLowerCase()]) && "set"in t && void 0 !== t.set(this, i, "value") || (this.value = i))
                    }
                    ))) : i ? (t = g.valHooks[i.type] || g.valHooks[i.nodeName.toLowerCase()]) && "get"in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof (n = i.value) ? n.replace(Ze, "") : null == n ? "" : n : void 0
                }
            }),
            g.extend({
                valHooks: {
                    option: {
                        get: function(e) {
                            var t = g.find.attr(e, "value");
                            return null != t ? t : g.trim(g.text(e))
                        }
                    },
                    select: {
                        get: function(e) {
                            for (var t, n, r = e.options, i = e.selectedIndex, o = "select-one" === e.type || 0 > i, a = o ? null : [], s = o ? i + 1 : r.length, l = 0 > i ? s : o ? i : 0; s > l; l++)
                                if (!(!(n = r[l]).selected && l !== i || (p.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && g.nodeName(n.parentNode, "optgroup"))) {
                                    if (t = g(n).val(),
                                    o)
                                        return t;
                                    a.push(t)
                                }
                            return a
                        },
                        set: function(e, t) {
                            for (var n, r, i = e.options, o = g.makeArray(t), a = i.length; a--; )
                                ((r = i[a]).selected = g.inArray(r.value, o) >= 0) && (n = !0);
                            return n || (e.selectedIndex = -1),
                            o
                        }
                    }
                }
            }),
            g.each(["radio", "checkbox"], (function() {
                g.valHooks[this] = {
                    set: function(e, t) {
                        return g.isArray(t) ? e.checked = g.inArray(g(e).val(), t) >= 0 : void 0
                    }
                },
                p.checkOn || (g.valHooks[this].get = function(e) {
                    return null === e.getAttribute("value") ? "on" : e.value
                }
                )
            }
            )),
            g.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), (function(e, t) {
                g.fn[t] = function(e, n) {
                    return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
                }
            }
            )),
            g.fn.extend({
                hover: function(e, t) {
                    return this.mouseenter(e).mouseleave(t || e)
                },
                bind: function(e, t, n) {
                    return this.on(e, null, t, n)
                },
                unbind: function(e, t) {
                    return this.off(e, null, t)
                },
                delegate: function(e, t, n, r) {
                    return this.on(t, e, n, r)
                },
                undelegate: function(e, t, n) {
                    return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
                }
            });
            var et = g.now()
              , tt = /\?/;
            g.parseJSON = function(e) {
                return JSON.parse(e + "")
            }
            ,
            g.parseXML = function(e) {
                var t;
                if (!e || "string" != typeof e)
                    return null;
                try {
                    t = (new DOMParser).parseFromString(e, "text/xml")
                } catch (e) {
                    t = void 0
                }
                return (!t || t.getElementsByTagName("parsererror").length) && g.error("Invalid XML: " + e),
                t
            }
            ;
            var nt = /#.*$/
              , rt = /([?&])_=[^&]*/
              , it = /^(.*?):[ \t]*([^\r\n]*)$/gm
              , ot = /^(?:GET|HEAD)$/
              , at = /^\/\//
              , st = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/
              , lt = {}
              , ut = {}
              , ct = "*/".concat("*")
              , ft = r.location.href
              , dt = st.exec(ft.toLowerCase()) || [];
            function pt(e) {
                return function(t, n) {
                    "string" != typeof t && (n = t,
                    t = "*");
                    var r, i = 0, o = t.toLowerCase().match(q) || [];
                    if (g.isFunction(n))
                        for (; r = o[i++]; )
                            "+" === r[0] ? (r = r.slice(1) || "*",
                            (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
                }
            }
            function ht(e, t, n, r) {
                var i = {}
                  , o = e === ut;
                function a(s) {
                    var l;
                    return i[s] = !0,
                    g.each(e[s] || [], (function(e, s) {
                        var u = s(t, n, r);
                        return "string" != typeof u || o || i[u] ? o ? !(l = u) : void 0 : (t.dataTypes.unshift(u),
                        a(u),
                        !1)
                    }
                    )),
                    l
                }
                return a(t.dataTypes[0]) || !i["*"] && a("*")
            }
            function mt(e, t) {
                var n, r, i = g.ajaxSettings.flatOptions || {};
                for (n in t)
                    void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
                return r && g.extend(!0, e, r),
                e
            }
            g.extend({
                active: 0,
                lastModified: {},
                etag: {},
                ajaxSettings: {
                    url: ft,
                    type: "GET",
                    isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(dt[1]),
                    global: !0,
                    processData: !0,
                    async: !0,
                    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                    accepts: {
                        "*": ct,
                        text: "text/plain",
                        html: "text/html",
                        xml: "application/xml, text/xml",
                        json: "application/json, text/javascript"
                    },
                    contents: {
                        xml: /xml/,
                        html: /html/,
                        json: /json/
                    },
                    responseFields: {
                        xml: "responseXML",
                        text: "responseText",
                        json: "responseJSON"
                    },
                    converters: {
                        "* text": String,
                        "text html": !0,
                        "text json": g.parseJSON,
                        "text xml": g.parseXML
                    },
                    flatOptions: {
                        url: !0,
                        context: !0
                    }
                },
                ajaxSetup: function(e, t) {
                    return t ? mt(mt(e, g.ajaxSettings), t) : mt(g.ajaxSettings, e)
                },
                ajaxPrefilter: pt(lt),
                ajaxTransport: pt(ut),
                ajax: function(e, t) {
                    "object" == typeof e && (t = e,
                    e = void 0),
                    t = t || {};
                    var n, r, i, o, a, s, l, u, c = g.ajaxSetup({}, t), f = c.context || c, d = c.context && (f.nodeType || f.jquery) ? g(f) : g.event, p = g.Deferred(), h = g.Callbacks("once memory"), m = c.statusCode || {}, v = {}, y = {}, b = 0, x = "canceled", w = {
                        readyState: 0,
                        getResponseHeader: function(e) {
                            var t;
                            if (2 === b) {
                                if (!o)
                                    for (o = {}; t = it.exec(i); )
                                        o[t[1].toLowerCase()] = t[2];
                                t = o[e.toLowerCase()]
                            }
                            return null == t ? null : t
                        },
                        getAllResponseHeaders: function() {
                            return 2 === b ? i : null
                        },
                        setRequestHeader: function(e, t) {
                            var n = e.toLowerCase();
                            return b || (e = y[n] = y[n] || e,
                            v[e] = t),
                            this
                        },
                        overrideMimeType: function(e) {
                            return b || (c.mimeType = e),
                            this
                        },
                        statusCode: function(e) {
                            var t;
                            if (e)
                                if (2 > b)
                                    for (t in e)
                                        m[t] = [m[t], e[t]];
                                else
                                    w.always(e[w.status]);
                            return this
                        },
                        abort: function(e) {
                            var t = e || x;
                            return n && n.abort(t),
                            T(0, t),
                            this
                        }
                    };
                    if (p.promise(w).complete = h.add,
                    w.success = w.done,
                    w.error = w.fail,
                    c.url = ((e || c.url || ft) + "").replace(nt, "").replace(at, dt[1] + "//"),
                    c.type = t.method || t.type || c.method || c.type,
                    c.dataTypes = g.trim(c.dataType || "*").toLowerCase().match(q) || [""],
                    null == c.crossDomain && (s = st.exec(c.url.toLowerCase()),
                    c.crossDomain = !(!s || s[1] === dt[1] && s[2] === dt[2] && (s[3] || ("http:" === s[1] ? "80" : "443")) === (dt[3] || ("http:" === dt[1] ? "80" : "443")))),
                    c.data && c.processData && "string" != typeof c.data && (c.data = g.param(c.data, c.traditional)),
                    ht(lt, c, t, w),
                    2 === b)
                        return w;
                    for (u in (l = g.event && c.global) && 0 == g.active++ && g.event.trigger("ajaxStart"),
                    c.type = c.type.toUpperCase(),
                    c.hasContent = !ot.test(c.type),
                    r = c.url,
                    c.hasContent || (c.data && (r = c.url += (tt.test(r) ? "&" : "?") + c.data,
                    delete c.data),
                    !1 === c.cache && (c.url = rt.test(r) ? r.replace(rt, "$1_=" + et++) : r + (tt.test(r) ? "&" : "?") + "_=" + et++)),
                    c.ifModified && (g.lastModified[r] && w.setRequestHeader("If-Modified-Since", g.lastModified[r]),
                    g.etag[r] && w.setRequestHeader("If-None-Match", g.etag[r])),
                    (c.data && c.hasContent && !1 !== c.contentType || t.contentType) && w.setRequestHeader("Content-Type", c.contentType),
                    w.setRequestHeader("Accept", c.dataTypes[0] && c.accepts[c.dataTypes[0]] ? c.accepts[c.dataTypes[0]] + ("*" !== c.dataTypes[0] ? ", " + ct + "; q=0.01" : "") : c.accepts["*"]),
                    c.headers)
                        w.setRequestHeader(u, c.headers[u]);
                    if (c.beforeSend && (!1 === c.beforeSend.call(f, w, c) || 2 === b))
                        return w.abort();
                    for (u in x = "abort",
                    {
                        success: 1,
                        error: 1,
                        complete: 1
                    })
                        w[u](c[u]);
                    if (n = ht(ut, c, t, w)) {
                        w.readyState = 1,
                        l && d.trigger("ajaxSend", [w, c]),
                        c.async && c.timeout > 0 && (a = setTimeout((function() {
                            w.abort("timeout")
                        }
                        ), c.timeout));
                        try {
                            b = 1,
                            n.send(v, T)
                        } catch (e) {
                            if (!(2 > b))
                                throw e;
                            T(-1, e)
                        }
                    } else
                        T(-1, "No Transport");
                    function T(e, t, o, s) {
                        var u, v, y, x, T, k = t;
                        2 !== b && (b = 2,
                        a && clearTimeout(a),
                        n = void 0,
                        i = s || "",
                        w.readyState = e > 0 ? 4 : 0,
                        u = e >= 200 && 300 > e || 304 === e,
                        o && (x = function(e, t, n) {
                            for (var r, i, o, a, s = e.contents, l = e.dataTypes; "*" === l[0]; )
                                l.shift(),
                                void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
                            if (r)
                                for (i in s)
                                    if (s[i] && s[i].test(r)) {
                                        l.unshift(i);
                                        break
                                    }
                            if (l[0]in n)
                                o = l[0];
                            else {
                                for (i in n) {
                                    if (!l[0] || e.converters[i + " " + l[0]]) {
                                        o = i;
                                        break
                                    }
                                    a || (a = i)
                                }
                                o = o || a
                            }
                            return o ? (o !== l[0] && l.unshift(o),
                            n[o]) : void 0
                        }(c, w, o)),
                        x = function(e, t, n, r) {
                            var i, o, a, s, l, u = {}, c = e.dataTypes.slice();
                            if (c[1])
                                for (a in e.converters)
                                    u[a.toLowerCase()] = e.converters[a];
                            for (o = c.shift(); o; )
                                if (e.responseFields[o] && (n[e.responseFields[o]] = t),
                                !l && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)),
                                l = o,
                                o = c.shift())
                                    if ("*" === o)
                                        o = l;
                                    else if ("*" !== l && l !== o) {
                                        if (!(a = u[l + " " + o] || u["* " + o]))
                                            for (i in u)
                                                if ((s = i.split(" "))[1] === o && (a = u[l + " " + s[0]] || u["* " + s[0]])) {
                                                    !0 === a ? a = u[i] : !0 !== u[i] && (o = s[0],
                                                    c.unshift(s[1]));
                                                    break
                                                }
                                        if (!0 !== a)
                                            if (a && e.throws)
                                                t = a(t);
                                            else
                                                try {
                                                    t = a(t)
                                                } catch (e) {
                                                    return {
                                                        state: "parsererror",
                                                        error: a ? e : "No conversion from " + l + " to " + o
                                                    }
                                                }
                                    }
                            return {
                                state: "success",
                                data: t
                            }
                        }(c, x, w, u),
                        u ? (c.ifModified && ((T = w.getResponseHeader("Last-Modified")) && (g.lastModified[r] = T),
                        (T = w.getResponseHeader("etag")) && (g.etag[r] = T)),
                        204 === e || "HEAD" === c.type ? k = "nocontent" : 304 === e ? k = "notmodified" : (k = x.state,
                        v = x.data,
                        u = !(y = x.error))) : (y = k,
                        (e || !k) && (k = "error",
                        0 > e && (e = 0))),
                        w.status = e,
                        w.statusText = (t || k) + "",
                        u ? p.resolveWith(f, [v, k, w]) : p.rejectWith(f, [w, k, y]),
                        w.statusCode(m),
                        m = void 0,
                        l && d.trigger(u ? "ajaxSuccess" : "ajaxError", [w, c, u ? v : y]),
                        h.fireWith(f, [w, k]),
                        l && (d.trigger("ajaxComplete", [w, c]),
                        --g.active || g.event.trigger("ajaxStop")))
                    }
                    return w
                },
                getJSON: function(e, t, n) {
                    return g.get(e, t, n, "json")
                },
                getScript: function(e, t) {
                    return g.get(e, void 0, t, "script")
                }
            }),
            g.each(["get", "post"], (function(e, t) {
                g[t] = function(e, n, r, i) {
                    return g.isFunction(n) && (i = i || r,
                    r = n,
                    n = void 0),
                    g.ajax({
                        url: e,
                        type: t,
                        dataType: i,
                        data: n,
                        success: r
                    })
                }
            }
            )),
            g._evalUrl = function(e) {
                return g.ajax({
                    url: e,
                    type: "GET",
                    dataType: "script",
                    async: !1,
                    global: !1,
                    throws: !0
                })
            }
            ,
            g.fn.extend({
                wrapAll: function(e) {
                    var t;
                    return g.isFunction(e) ? this.each((function(t) {
                        g(this).wrapAll(e.call(this, t))
                    }
                    )) : (this[0] && (t = g(e, this[0].ownerDocument).eq(0).clone(!0),
                    this[0].parentNode && t.insertBefore(this[0]),
                    t.map((function() {
                        for (var e = this; e.firstElementChild; )
                            e = e.firstElementChild;
                        return e
                    }
                    )).append(this)),
                    this)
                },
                wrapInner: function(e) {
                    return this.each(g.isFunction(e) ? function(t) {
                        g(this).wrapInner(e.call(this, t))
                    }
                    : function() {
                        var t = g(this)
                          , n = t.contents();
                        n.length ? n.wrapAll(e) : t.append(e)
                    }
                    )
                },
                wrap: function(e) {
                    var t = g.isFunction(e);
                    return this.each((function(n) {
                        g(this).wrapAll(t ? e.call(this, n) : e)
                    }
                    ))
                },
                unwrap: function() {
                    return this.parent().each((function() {
                        g.nodeName(this, "body") || g(this).replaceWith(this.childNodes)
                    }
                    )).end()
                }
            }),
            g.expr.filters.hidden = function(e) {
                return e.offsetWidth <= 0 && e.offsetHeight <= 0
            }
            ,
            g.expr.filters.visible = function(e) {
                return !g.expr.filters.hidden(e)
            }
            ;
            var gt = /%20/g
              , vt = /\[\]$/
              , yt = /\r?\n/g
              , bt = /^(?:submit|button|image|reset|file)$/i
              , xt = /^(?:input|select|textarea|keygen)/i;
            function wt(e, t, n, r) {
                var i;
                if (g.isArray(t))
                    g.each(t, (function(t, i) {
                        n || vt.test(e) ? r(e, i) : wt(e + "[" + ("object" == typeof i ? t : "") + "]", i, n, r)
                    }
                    ));
                else if (n || "object" !== g.type(t))
                    r(e, t);
                else
                    for (i in t)
                        wt(e + "[" + i + "]", t[i], n, r)
            }
            g.param = function(e, t) {
                var n, r = [], i = function(e, t) {
                    t = g.isFunction(t) ? t() : null == t ? "" : t,
                    r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
                };
                if (void 0 === t && (t = g.ajaxSettings && g.ajaxSettings.traditional),
                g.isArray(e) || e.jquery && !g.isPlainObject(e))
                    g.each(e, (function() {
                        i(this.name, this.value)
                    }
                    ));
                else
                    for (n in e)
                        wt(n, e[n], t, i);
                return r.join("&").replace(gt, "+")
            }
            ,
            g.fn.extend({
                serialize: function() {
                    return g.param(this.serializeArray())
                },
                serializeArray: function() {
                    return this.map((function() {
                        var e = g.prop(this, "elements");
                        return e ? g.makeArray(e) : this
                    }
                    )).filter((function() {
                        var e = this.type;
                        return this.name && !g(this).is(":disabled") && xt.test(this.nodeName) && !bt.test(e) && (this.checked || !X.test(e))
                    }
                    )).map((function(e, t) {
                        var n = g(this).val();
                        return null == n ? null : g.isArray(n) ? g.map(n, (function(e) {
                            return {
                                name: t.name,
                                value: e.replace(yt, "\r\n")
                            }
                        }
                        )) : {
                            name: t.name,
                            value: n.replace(yt, "\r\n")
                        }
                    }
                    )).get()
                }
            }),
            g.ajaxSettings.xhr = function() {
                try {
                    return new XMLHttpRequest
                } catch (e) {}
            }
            ;
            var Tt = 0
              , kt = {}
              , Ct = {
                0: 200,
                1223: 204
            }
              , Et = g.ajaxSettings.xhr();
            r.attachEvent && r.attachEvent("onunload", (function() {
                for (var e in kt)
                    kt[e]()
            }
            )),
            p.cors = !!Et && "withCredentials"in Et,
            p.ajax = Et = !!Et,
            g.ajaxTransport((function(e) {
                var t;
                return p.cors || Et && !e.crossDomain ? {
                    send: function(n, r) {
                        var i, o = e.xhr(), a = ++Tt;
                        if (o.open(e.type, e.url, e.async, e.username, e.password),
                        e.xhrFields)
                            for (i in e.xhrFields)
                                o[i] = e.xhrFields[i];
                        for (i in e.mimeType && o.overrideMimeType && o.overrideMimeType(e.mimeType),
                        e.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest"),
                        n)
                            o.setRequestHeader(i, n[i]);
                        t = function(e) {
                            return function() {
                                t && (delete kt[a],
                                t = o.onload = o.onerror = null,
                                "abort" === e ? o.abort() : "error" === e ? r(o.status, o.statusText) : r(Ct[o.status] || o.status, o.statusText, "string" == typeof o.responseText ? {
                                    text: o.responseText
                                } : void 0, o.getAllResponseHeaders()))
                            }
                        }
                        ,
                        o.onload = t(),
                        o.onerror = t("error"),
                        t = kt[a] = t("abort");
                        try {
                            o.send(e.hasContent && e.data || null)
                        } catch (e) {
                            if (t)
                                throw e
                        }
                    },
                    abort: function() {
                        t && t()
                    }
                } : void 0
            }
            )),
            g.ajaxSetup({
                accepts: {
                    script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
                },
                contents: {
                    script: /(?:java|ecma)script/
                },
                converters: {
                    "text script": function(e) {
                        return g.globalEval(e),
                        e
                    }
                }
            }),
            g.ajaxPrefilter("script", (function(e) {
                void 0 === e.cache && (e.cache = !1),
                e.crossDomain && (e.type = "GET")
            }
            )),
            g.ajaxTransport("script", (function(e) {
                var t, n;
                if (e.crossDomain)
                    return {
                        send: function(r, i) {
                            t = g("<script>").prop({
                                async: !0,
                                charset: e.scriptCharset,
                                src: e.url
                            }).on("load error", n = function(e) {
                                t.remove(),
                                n = null,
                                e && i("error" === e.type ? 404 : 200, e.type)
                            }
                            ),
                            h.head.appendChild(t[0])
                        },
                        abort: function() {
                            n && n()
                        }
                    }
            }
            ));
            var St = []
              , At = /(=)\?(?=&|$)|\?\?/;
            g.ajaxSetup({
                jsonp: "callback",
                jsonpCallback: function() {
                    var e = St.pop() || g.expando + "_" + et++;
                    return this[e] = !0,
                    e
                }
            }),
            g.ajaxPrefilter("json jsonp", (function(e, t, n) {
                var i, o, a, s = !1 !== e.jsonp && (At.test(e.url) ? "url" : "string" == typeof e.data && !(e.contentType || "").indexOf("application/x-www-form-urlencoded") && At.test(e.data) && "data");
                return s || "jsonp" === e.dataTypes[0] ? (i = e.jsonpCallback = g.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback,
                s ? e[s] = e[s].replace(At, "$1" + i) : !1 !== e.jsonp && (e.url += (tt.test(e.url) ? "&" : "?") + e.jsonp + "=" + i),
                e.converters["script json"] = function() {
                    return a || g.error(i + " was not called"),
                    a[0]
                }
                ,
                e.dataTypes[0] = "json",
                o = r[i],
                r[i] = function() {
                    a = arguments
                }
                ,
                n.always((function() {
                    r[i] = o,
                    e[i] && (e.jsonpCallback = t.jsonpCallback,
                    St.push(i)),
                    a && g.isFunction(o) && o(a[0]),
                    a = o = void 0
                }
                )),
                "script") : void 0
            }
            )),
            g.parseHTML = function(e, t, n) {
                if (!e || "string" != typeof e)
                    return null;
                "boolean" == typeof t && (n = t,
                t = !1),
                t = t || h;
                var r = C.exec(e)
                  , i = !n && [];
                return r ? [t.createElement(r[1])] : (r = g.buildFragment([e], t, i),
                i && i.length && g(i).remove(),
                g.merge([], r.childNodes))
            }
            ;
            var Dt = g.fn.load;
            g.fn.load = function(e, t, n) {
                if ("string" != typeof e && Dt)
                    return Dt.apply(this, arguments);
                var r, i, o, a = this, s = e.indexOf(" ");
                return s >= 0 && (r = g.trim(e.slice(s)),
                e = e.slice(0, s)),
                g.isFunction(t) ? (n = t,
                t = void 0) : t && "object" == typeof t && (i = "POST"),
                a.length > 0 && g.ajax({
                    url: e,
                    type: i,
                    dataType: "html",
                    data: t
                }).done((function(e) {
                    o = arguments,
                    a.html(r ? g("<div>").append(g.parseHTML(e)).find(r) : e)
                }
                )).complete(n && function(e, t) {
                    a.each(n, o || [e.responseText, t, e])
                }
                ),
                this
            }
            ,
            g.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], (function(e, t) {
                g.fn[t] = function(e) {
                    return this.on(t, e)
                }
            }
            )),
            g.expr.filters.animated = function(e) {
                return g.grep(g.timers, (function(t) {
                    return e === t.elem
                }
                )).length
            }
            ;
            var Nt = r.document.documentElement;
            function jt(e) {
                return g.isWindow(e) ? e : 9 === e.nodeType && e.defaultView
            }
            g.offset = {
                setOffset: function(e, t, n) {
                    var r, i, o, a, s, l, u = g.css(e, "position"), c = g(e), f = {};
                    "static" === u && (e.style.position = "relative"),
                    s = c.offset(),
                    o = g.css(e, "top"),
                    l = g.css(e, "left"),
                    ("absolute" === u || "fixed" === u) && (o + l).indexOf("auto") > -1 ? (a = (r = c.position()).top,
                    i = r.left) : (a = parseFloat(o) || 0,
                    i = parseFloat(l) || 0),
                    g.isFunction(t) && (t = t.call(e, n, s)),
                    null != t.top && (f.top = t.top - s.top + a),
                    null != t.left && (f.left = t.left - s.left + i),
                    "using"in t ? t.using.call(e, f) : c.css(f)
                }
            },
            g.fn.extend({
                offset: function(e) {
                    if (arguments.length)
                        return void 0 === e ? this : this.each((function(t) {
                            g.offset.setOffset(this, e, t)
                        }
                        ));
                    var t, n, r = this[0], i = {
                        top: 0,
                        left: 0
                    }, o = r && r.ownerDocument;
                    return o ? (t = o.documentElement,
                    g.contains(t, r) ? (typeof r.getBoundingClientRect !== V && (i = r.getBoundingClientRect()),
                    n = jt(o),
                    {
                        top: i.top + n.pageYOffset - t.clientTop,
                        left: i.left + n.pageXOffset - t.clientLeft
                    }) : i) : void 0
                },
                position: function() {
                    if (this[0]) {
                        var e, t, n = this[0], r = {
                            top: 0,
                            left: 0
                        };
                        return "fixed" === g.css(n, "position") ? t = n.getBoundingClientRect() : (e = this.offsetParent(),
                        t = this.offset(),
                        g.nodeName(e[0], "html") || (r = e.offset()),
                        r.top += g.css(e[0], "borderTopWidth", !0),
                        r.left += g.css(e[0], "borderLeftWidth", !0)),
                        {
                            top: t.top - r.top - g.css(n, "marginTop", !0),
                            left: t.left - r.left - g.css(n, "marginLeft", !0)
                        }
                    }
                },
                offsetParent: function() {
                    return this.map((function() {
                        for (var e = this.offsetParent || Nt; e && !g.nodeName(e, "html") && "static" === g.css(e, "position"); )
                            e = e.offsetParent;
                        return e || Nt
                    }
                    ))
                }
            }),
            g.each({
                scrollLeft: "pageXOffset",
                scrollTop: "pageYOffset"
            }, (function(e, t) {
                var n = "pageYOffset" === t;
                g.fn[e] = function(i) {
                    return M(this, (function(e, i, o) {
                        var a = jt(e);
                        return void 0 === o ? a ? a[t] : e[i] : void (a ? a.scrollTo(n ? r.pageXOffset : o, n ? o : r.pageYOffset) : e[i] = o)
                    }
                    ), e, i, arguments.length, null)
                }
            }
            )),
            g.each(["top", "left"], (function(e, t) {
                g.cssHooks[t] = Ee(p.pixelPosition, (function(e, n) {
                    return n ? (n = Ce(e, t),
                    Te.test(n) ? g(e).position()[t] + "px" : n) : void 0
                }
                ))
            }
            )),
            g.each({
                Height: "height",
                Width: "width"
            }, (function(e, t) {
                g.each({
                    padding: "inner" + e,
                    content: t,
                    "": "outer" + e
                }, (function(n, r) {
                    g.fn[r] = function(r, i) {
                        var o = arguments.length && (n || "boolean" != typeof r)
                          , a = n || (!0 === r || !0 === i ? "margin" : "border");
                        return M(this, (function(t, n, r) {
                            var i;
                            return g.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (i = t.documentElement,
                            Math.max(t.body["scroll" + e], i["scroll" + e], t.body["offset" + e], i["offset" + e], i["client" + e])) : void 0 === r ? g.css(t, n, a) : g.style(t, n, r, a)
                        }
                        ), t, o ? r : void 0, o, null)
                    }
                }
                ))
            }
            )),
            g.fn.size = function() {
                return this.length
            }
            ,
            g.fn.andSelf = g.fn.addBack,
            void 0 === (n = function() {
                return g
            }
            .apply(t, [])) || (e.exports = n);
            var Lt = r.jQuery
              , Ot = r.$;
            return g.noConflict = function(e) {
                return r.$ === g && (r.$ = Ot),
                e && r.jQuery === g && (r.jQuery = Lt),
                g
            }
            ,
            typeof i === V && (r.jQuery = r.$ = g),
            g
        }
        ,
        "object" == typeof e.exports ? e.exports = r.document ? i(r, !0) : function(e) {
            if (!e.document)
                throw new Error("jQuery requires a window with a document");
            return i(e)
        }
        : i(r)
    },
    127: ()=>{
        var e, t;
        _0x4c28 = ["18|38|15|2", "ucisR", "wWwRM", "LzcOo", "yWGcu", "PlAEw", "ihcci", "hBKtU", "rvloG", "xcQTI", "uhJgH", "vRqUp", "EQEzR", "abc", "QgSUn", "0|45|44|19", "WMqBp", "koePJ", "jGSEC", "IKbhW", "wEOgn", "|49|71|11|", "xgzfr", "ABCDEF", "DdHPB", "aFxRD", "sFtiw", "concat", "YhaCC", "YVBwM", "abYok", "2|28|6|36|", "NLOsy", "bRLIN", "xGAWc", "length", "zYRlD", "14|67|61|3", "bolvy", "pagBT", "mdsJQ", "4|69|41|26", "kaXPV", "IWxBE", "pviAr", "5|0|2", "lvwPz", "YcDFe", "yGmJD", "FcYqi", "AAZoR", "|46|5|3|50", "PnITs", "ABCDEFGHIJ", "charCodeAt", "KLMNOPQRST", "prrXX", "FDiNG", "split", "oBesn", "9|24|10|56", "VaXsK", "fromCharCo", "FDfcp", "rrdPR", "HHkBN", "89+/", "mfuQZ", "PbrnX", "FcXlo", "rNapo", "fEXNi", "qtIDJ", "60|53|21|5", "Rtsed", "SUrST", "nsaps", "vyNVU", "2|29|23|64", "0|43|57|4|", "NNXUu", "nCrbn", "wQPIq", "XBcOb", "39|40|47|6", "ljkOt", "yMPhx", "TXzzv", "0123456789", "fmdcS", "iXQwu", "grCxb", "3|6|1|4|7|", "wKeAM", "Iekey", "opqrstuvwx", "|7|17", "BQgZQ", "BtzmV", "jZUAt", "HYhpy", "Yvoqt", "VyzBI", "NNVLf", "dbmfK", "0|58|16|32", "UAFHv", "WNIsZ", "2|1|4|3|5|", "JFqRJ", "zObVA", "d24fb0d696", "XfWkD", "MFmWH", "lZISZ", "WzbFA", "kaQlD", "3f7d28e17f", "eSwEi", "YpeFX", "kZhzK", "KxKIe", "LAIPf", "LjyKQ", "YLwOK", "iqfMz", "51|8|0|65|", "JRihE", "nqEyg", "|37|22|27|", "ZXsFi", "goEwl", "|31|63|48|", "wvVCN", "wnDlW", "Myvqp", "UlhBp", "fwCDC", "charAt", "Lmhlz", "WQCAS", "UXeVn", "KIXRL", "HiEZt", "WNzfT", "lNWda", "tsNzQ"],
        e = _0x4c28,
        t = 368,
        function(t) {
            for (; --t; )
                e.push(e.shift())
        }(++t);
        var n = function(e, t) {
            return _0x4c28[e -= 0]
        };
        window.md5 = function(e) {
            var t = n
              , r = {
                fEXNi: function(e, t) {
                    return e(t)
                },
                LzcOo: function(e, t, n) {
                    return e(t, n)
                }
            };
            r[t(3)] = function(e, t) {
                return e(t)
            }
            ,
            r.wEOgn = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(120)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(69)] = function(e, t) {
                return e == t
            }
            ,
            r[t(109)] = function(e, t) {
                return e(t)
            }
            ,
            r[t(112)] = t(86),
            r.oBesn = "900150983c" + t(37) + t(43) + "72",
            r[t(70)] = t(18) + t(118),
            r[t(16)] = function(e, t) {
                return e < t
            }
            ,
            r[t(2)] = t(110) + t(5) + t(133) + "|55|13|12|" + t(146) + t(114) + t(94) + "35|68|33|4" + t(104) + t(52) + t(73) + t(88) + t(55) + "25|34|1|2|" + t(10) + t(4) + t(124) + t(58) + "52|59|66|7" + t(31) + t(22),
            r[t(53)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(35)] = function(e, t) {
                return e + t
            }
            ,
            r[t(141)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(91)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(65)] = function(e, t) {
                return e + t
            }
            ,
            r[t(38)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(19)] = function(e, t) {
                return e + t
            }
            ,
            r[t(117)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(92)] = function(e, t) {
                return e + t
            }
            ,
            r[t(82)] = function(e, t) {
                return e + t
            }
            ,
            r[t(111)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(78)] = function(e, t) {
                return e + t
            }
            ,
            r.lZISZ = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r.Iekey = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r.AAZoR = function(e, t) {
                return e + t
            }
            ,
            r[t(67)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r.UlhBp = function(e, t) {
                return e + t
            }
            ,
            r.yMPhx = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(138)] = function(e, t) {
                return e + t
            }
            ,
            r[t(121)] = function(e, t) {
                return e + t
            }
            ,
            r[t(98)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r.kHuTw = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(50)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(142)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(87)] = function(e, t) {
                return e + t
            }
            ,
            r[t(90)] = function(e, t) {
                return e + t
            }
            ,
            r[t(59)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(28)] = function(e, t) {
                return e + t
            }
            ,
            r[t(119)] = function(e, t) {
                return e + t
            }
            ,
            r.YpeFX = function(e, t) {
                return e + t
            }
            ,
            r[t(7)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r.prrXX = function(e, t) {
                return e + t
            }
            ,
            r.kaQlD = function(e, t) {
                return e + t
            }
            ,
            r.qtIDJ = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r.xGAWc = function(e, t) {
                return e + t
            }
            ,
            r[t(134)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(89)] = function(e, t) {
                return e + t
            }
            ,
            r[t(15)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(9)] = function(e, t) {
                return e + t
            }
            ,
            r[t(56)] = function(e, t) {
                return e + t
            }
            ,
            r[t(6)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(32)] = function(e, t) {
                return e + t
            }
            ,
            r[t(99)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(39)] = function(e, t) {
                return e + t
            }
            ,
            r[t(113)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(106)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(66)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r.TXzzv = function(e, t) {
                return e + t
            }
            ,
            r.NNVLf = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(79)] = function(e, t) {
                return e + t
            }
            ,
            r[t(1)] = function(e, t, n, r, i, o, a, s) {
                return e(t, n, r, i, o, a, s)
            }
            ,
            r[t(81)] = function(e, t) {
                return e + t
            }
            ,
            r.MXnIN = function(e, t) {
                return e >> t
            }
            ,
            r[t(23)] = function(e, t) {
                return e << t
            }
            ,
            r.nqEyg = function(e, t) {
                return e % t
            }
            ,
            r.kaXPV = function(e, t) {
                return e >>> t
            }
            ,
            r[t(24)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(44)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(30)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(143)] = function(e, t) {
                return e | t
            }
            ,
            r[t(101)] = function(e, t) {
                return e & t
            }
            ,
            r[t(122)] = function(e, t, n, r, i, o, a) {
                return e(t, n, r, i, o, a)
            }
            ,
            r.ZpUiH = function(e, t) {
                return e & t
            }
            ,
            r[t(72)] = function(e, t) {
                return e ^ t
            }
            ,
            r[t(130)] = function(e, t) {
                return e ^ t
            }
            ,
            r[t(41)] = function(e, t) {
                return e | t
            }
            ,
            r[t(116)] = function(e, t) {
                return e > t
            }
            ,
            r[t(80)] = function(e, t) {
                return e(t)
            }
            ,
            r[t(33)] = function(e, t, n) {
                return e(t, n)
            }
            ,
            r[t(83)] = function(e, t) {
                return e(t)
            }
            ,
            r[t(60)] = function(e, t) {
                return e + t
            }
            ,
            r.FDfcp = function(e, t) {
                return e * t
            }
            ,
            r[t(95)] = function(e, t) {
                return e + t
            }
            ,
            r[t(51)] = function(e, t) {
                return e & t
            }
            ,
            r.DdHPB = function(e, t) {
                return e >> t
            }
            ,
            r.abYok = function(e, t) {
                return e | t
            }
            ,
            r[t(84)] = function(e, t) {
                return e << t
            }
            ,
            r[t(105)] = function(e, t) {
                return e & t
            }
            ,
            r[t(8)] = function(e, t) {
                return e - t
            }
            ,
            r[t(137)] = function(e) {
                return e()
            }
            ,
            r.YVBwM = function(e, t) {
                return e << t
            }
            ,
            r[t(27)] = function(e, t) {
                return e & t
            }
            ,
            r[t(26)] = function(e, t) {
                return e / t
            }
            ,
            r[t(74)] = function(e, t) {
                return e * t
            }
            ,
            r[t(49)] = t(14) + "abcdef",
            r[t(36)] = function(e, t) {
                return e >> t
            }
            ,
            r[t(46)] = function(e, t) {
                return e + t
            }
            ,
            r[t(75)] = function(e, t) {
                return e >> t
            }
            ,
            r[t(47)] = function(e, t) {
                return e * t
            }
            ,
            r[t(11)] = t(126) + t(128) + "UVWXYZabcdefghijklmn" + t(21) + "yz01234567" + t(139),
            r[t(63)] = function(e, t) {
                return e * t
            }
            ,
            r.KIXRL = function(e, t) {
                return e << t
            }
            ,
            r[t(57)] = function(e, t) {
                return e % t
            }
            ,
            r[t(77)] = function(e, t) {
                return e << t
            }
            ,
            r[t(71)] = function(e, t) {
                return e >> t
            }
            ,
            r.jZUAt = function(e, t) {
                return e >> t
            }
            ,
            r[t(48)] = function(e, t) {
                return e + t
            }
            ,
            r[t(17)] = function(e, t) {
                return e % t
            }
            ,
            r[t(85)] = function(e, t) {
                return e * t
            }
            ,
            r[t(61)] = function(e, t) {
                return e < t
            }
            ,
            r.mfuQZ = function(e, t) {
                return e + t
            }
            ,
            r[t(125)] = function(e, t) {
                return e * t
            }
            ,
            r[t(0)] = function(e, t) {
                return e(t)
            }
            ;
            var i = r;
            function o(e, n) {
                for (var r = t, o = i.WNzfT[r(131)]("|"), a = 0; ; ) {
                    switch (o[a++]) {
                    case "0":
                        for (var d = 0; i.iXQwu(d, e.length); d += 16)
                            for (var p = i[r(2)][r(131)]("|"), h = 0; ; ) {
                                switch (p[h++]) {
                                case "0":
                                    w = i[r(53)](l, w, b, x, T, e[d + 2], 9, -51403784);
                                    continue;
                                case "1":
                                    x = u(x, T, w, b, e[d + 6], 23, 76029189);
                                    continue;
                                case "2":
                                    b = i[r(53)](u, b, x, T, w, e[i.JFqRJ(d, 9)], 4, -640364487);
                                    continue;
                                case "3":
                                    T = i[r(141)](c, T, w, b, x, e[d + 10], 15, -1051523);
                                    continue;
                                case "4":
                                    T = s(T, w, b, x, e[i.JFqRJ(d, 2)], 17, 606105819);
                                    continue;
                                case "5":
                                    w = i[r(91)](c, w, b, x, T, e[i[r(65)](d, 3)], 10, -1894446606);
                                    continue;
                                case "6":
                                    w = i.XfWkD(l, w, b, x, T, e[i.wKeAM(d, 14)], 9, -1019803690);
                                    continue;
                                case "7":
                                    T = i.pviAr(f, T, v);
                                    continue;
                                case "8":
                                    b = i.XfWkD(l, b, x, T, w, e[i[r(92)](d, 13)], 5, -1444681467);
                                    continue;
                                case "9":
                                    x = i[r(38)](s, x, T, w, b, e[i[r(82)](d, 3)], 22, -1044525330);
                                    continue;
                                case "10":
                                    w = s(w, b, x, T, e[i[r(82)](d, 5)], 12, 1200080426);
                                    continue;
                                case "11":
                                    x = i[r(38)](l, x, T, w, b, e[i[r(82)](d, 0)], 20, -373897302);
                                    continue;
                                case "12":
                                    w = i[r(38)](s, w, b, x, T, e[i[r(82)](d, 9)], 12, -1958435417);
                                    continue;
                                case "13":
                                    b = i.XfWkD(s, b, x, T, w, e[i.xcQTI(d, 8)], 7, 1770035416);
                                    continue;
                                case "14":
                                    var m = b;
                                    continue;
                                case "15":
                                    w = i[r(38)](u, w, b, x, T, e[i.xcQTI(d, 8)], 11, -2022574463);
                                    continue;
                                case "16":
                                    b = f(b, m);
                                    continue;
                                case "17":
                                    w = i[r(111)](f, w, g);
                                    continue;
                                case "18":
                                    x = l(x, T, w, b, e[i[r(78)](d, 12)], 20, -1921207734);
                                    continue;
                                case "19":
                                    w = i[r(40)](u, w, b, x, T, e[d + 4], 11, 1272893353);
                                    continue;
                                case "20":
                                    T = i[r(20)](u, T, w, b, x, e[i.PlAEw(d, 11)], 16, 1839030562);
                                    continue;
                                case "21":
                                    b = s(b, x, T, w, e[i[r(123)](d, 12)], 7, 1804550682);
                                    continue;
                                case "22":
                                    x = u(x, T, w, b, e[i[r(123)](d, 10)], 23, -1094730640);
                                    continue;
                                case "23":
                                    T = i[r(67)](c, T, w, b, x, e[d + 14], 15, -1416354905);
                                    continue;
                                case "24":
                                    b = s(b, x, T, w, e[i[r(123)](d, 4)], 7, -176418897);
                                    continue;
                                case "25":
                                    w = i.UXeVn(u, w, b, x, T, e[d + 0], 11, -358537222);
                                    continue;
                                case "26":
                                    b = i.UXeVn(l, b, x, T, w, e[i[r(62)](d, 1)], 5, -165796510);
                                    continue;
                                case "27":
                                    b = i.UXeVn(u, b, x, T, w, e[i[r(62)](d, 13)], 4, 681279174);
                                    continue;
                                case "28":
                                    b = i[r(12)](l, b, x, T, w, e[i[r(138)](d, 9)], 5, 568446438);
                                    continue;
                                case "29":
                                    w = i.yMPhx(c, w, b, x, T, e[d + 7], 10, 11261161415);
                                    continue;
                                case "30":
                                    var g = w;
                                    continue;
                                case "31":
                                    b = c(b, x, T, w, e[i.yGmJD(d, 8)], 6, 1873313359);
                                    continue;
                                case "32":
                                    x = i.aFxRD(f, x, y);
                                    continue;
                                case "33":
                                    T = i[r(12)](l, T, w, b, x, e[i[r(121)](d, 15)], 14, -660478335);
                                    continue;
                                case "34":
                                    T = i.kHuTw(u, T, w, b, x, e[d + 3], 16, -722881979);
                                    continue;
                                case "35":
                                    b = i[r(50)](l, b, x, T, w, e[i[r(121)](d, 5)], 5, -701520691);
                                    continue;
                                case "36":
                                    T = l(T, w, b, x, e[i[r(121)](d, 3)], 14, -187363961);
                                    continue;
                                case "37":
                                    T = i[r(142)](u, T, w, b, x, e[i.QgSUn(d, 7)], 16, -155497632);
                                    continue;
                                case "38":
                                    b = i.FcXlo(u, b, x, T, w, e[i.koePJ(d, 5)], 4, -378558);
                                    continue;
                                case "39":
                                    w = i[r(142)](u, w, b, x, T, e[i[r(90)](d, 12)], 11, -421815835);
                                    continue;
                                case "40":
                                    T = i[r(59)](u, T, w, b, x, e[i[r(28)](d, 15)], 16, 530742520);
                                    continue;
                                case "41":
                                    x = i.wvVCN(s, x, T, w, b, e[d + 15], 22, 1236531029);
                                    continue;
                                case "42":
                                    x = i[r(59)](l, x, T, w, b, e[i[r(119)](d, 4)], 20, -405537848);
                                    continue;
                                case "43":
                                    b = i[r(59)](s, b, x, T, w, e[i.lvwPz(d, 0)], 7, -680976936);
                                    continue;
                                case "44":
                                    b = i[r(59)](u, b, x, T, w, e[i[r(45)](d, 1)], 4, -1530992060);
                                    continue;
                                case "45":
                                    x = i.nCrbn(u, x, T, w, b, e[i[r(129)](d, 14)], 23, -35311556);
                                    continue;
                                case "46":
                                    b = c(b, x, T, w, e[i[r(42)](d, 12)], 6, 1700485571);
                                    continue;
                                case "47":
                                    x = i[r(7)](u, x, T, w, b, e[i.kaQlD(d, 2)], 23, -995338651);
                                    continue;
                                case "48":
                                    T = c(T, w, b, x, e[d + 6], 15, -1560198380);
                                    continue;
                                case "49":
                                    w = i[r(145)](l, w, b, x, T, e[i[r(107)](d, 6)], 9, -1069501632);
                                    continue;
                                case "50":
                                    x = i[r(134)](c, x, T, w, b, e[i[r(89)](d, 1)], 21, -2054922799);
                                    continue;
                                case "51":
                                    x = i.fmdcS(l, x, T, w, b, e[d + 8], 20, 1163531501);
                                    continue;
                                case "52":
                                    x = i[r(15)](c, x, T, w, b, e[i[r(9)](d, 13)], 21, 1309151649);
                                    continue;
                                case "53":
                                    x = i[r(15)](s, x, T, w, b, e[i[r(56)](d, 11)], 22, -1990404162);
                                    continue;
                                case "54":
                                    w = i[r(6)](s, w, b, x, T, e[i[r(32)](d, 13)], 12, -40341101);
                                    continue;
                                case "55":
                                    x = i.sFtiw(s, x, T, w, b, e[i.UAFHv(d, 7)], 22, -45705983);
                                    continue;
                                case "56":
                                    T = i.sFtiw(s, T, w, b, x, e[i.MFmWH(d, 6)], 17, -1473231341);
                                    continue;
                                case "57":
                                    w = i[r(99)](s, w, b, x, T, e[i.MFmWH(d, 1)], 12, -389564586);
                                    continue;
                                case "58":
                                    x = c(x, T, w, b, e[i[r(39)](d, 9)], 21, -343485551);
                                    continue;
                                case "59":
                                    b = i[r(113)](c, b, x, T, w, e[i[r(39)](d, 4)], 6, -145523070);
                                    continue;
                                case "60":
                                    T = i.bRLIN(s, T, w, b, x, e[i[r(39)](d, 10)], 17, -42063);
                                    continue;
                                case "61":
                                    var v = T;
                                    continue;
                                case "62":
                                    b = i[r(66)](c, b, x, T, w, e[d + 0], 6, -198630844);
                                    continue;
                                case "63":
                                    w = i[r(66)](c, w, b, x, T, e[i[r(13)](d, 15)], 10, -30611744);
                                    continue;
                                case "64":
                                    x = c(x, T, w, b, e[d + 5], 21, -57434055);
                                    continue;
                                case "65":
                                    T = i[r(29)](l, T, w, b, x, e[i[r(13)](d, 7)], 14, 1735328473);
                                    continue;
                                case "66":
                                    w = i[r(29)](c, w, b, x, T, e[i[r(79)](d, 11)], 10, -1120210379);
                                    continue;
                                case "67":
                                    var y = x;
                                    continue;
                                case "68":
                                    w = i[r(1)](l, w, b, x, T, e[d + 10], 9, 38016083);
                                    continue;
                                case "69":
                                    T = i[r(1)](s, T, w, b, x, e[i[r(79)](d, 14)], 17, -1502002290);
                                    continue;
                                case "70":
                                    T = i.SUrST(c, T, w, b, x, e[i[r(79)](d, 2)], 15, 718787259);
                                    continue;
                                case "71":
                                    T = l(T, w, b, x, e[i[r(81)](d, 11)], 14, 643717713);
                                    continue
                                }
                                break
                            }
                        continue;
                    case "1":
                        var b = 1732584193;
                        continue;
                    case "2":
                        return Array(b, x, T, w);
                    case "3":
                        e[i.MXnIN(n, 5)] |= i[r(23)](128, i[r(54)](n, 32));
                        continue;
                    case "4":
                        var x = -271733879;
                        continue;
                    case "5":
                        var w = 271733878;
                        continue;
                    case "6":
                        e[i.BQgZQ(i[r(115)](n + 64, 9), 4) + 14] = n;
                        continue;
                    case "7":
                        var T = -1732584194;
                        continue
                    }
                    break
                }
            }
            function a(e, n, r, o, a, s) {
                var l = t;
                return f(i.BtzmV(d, i[l(44)](f, i.dbmfK(f, n, e), i[l(30)](f, o, s)), a), r)
            }
            function s(e, n, r, o, s, l, u) {
                var c = t;
                return a(i[c(143)](i[c(101)](n, r), i[c(101)](~n, o)), e, n, s, l, u)
            }
            function l(e, n, r, o, s, l, u) {
                var c = t;
                return i[c(122)](a, i[c(143)](i.ZpUiH(n, o), i.ZpUiH(r, ~o)), e, n, s, l, u)
            }
            function u(e, n, r, o, s, l, u) {
                return i[t(122)](a, i.tsNzQ(n ^ r, o), e, n, s, l, u)
            }
            function c(e, n, r, o, s, l, u) {
                var c = t;
                return i[c(122)](a, i[c(130)](r, i[c(41)](n, ~o)), e, n, s, l, u)
            }
            function f(e, n) {
                var r = t
                  , o = i[r(95)](65535 & e, i.iqfMz(n, 65535))
                  , a = i[r(95)](e >> 16, i[r(97)](n, 16)) + i[r(97)](o, 16);
                return i[r(103)](i[r(84)](a, 16), i[r(105)](o, 65535))
            }
            function d(e, n) {
                var r = t;
                return i.abYok(e << n, e >>> i[r(8)](32, n))
            }
            function p(e) {
                for (var n = t, r = i[n(137)](Array), o = i[n(8)](i.vRqUp(1, 16), 1), a = 0; a < i.FDfcp(e[n(108)], 16); a += 16)
                    r[i[n(97)](a, 5)] |= i[n(102)](i[n(27)](e[n(127)](i[n(26)](a, 16)), o), i[n(54)](a, 32));
                return r
            }
            function h(e) {
                for (var n = t, r = i[n(49)], o = "", a = 0; i.iXQwu(a, i[n(74)](e[n(108)], 4)); a++)
                    o += i.xgzfr(r[n(64)](15 & i[n(36)](e[i[n(36)](a, 2)], i[n(46)](i[n(74)](a % 4, 8), 4))), r[n(64)](15 & i.wWwRM(e[a >> 2], i[n(47)](a % 4, 8))));
                return o
            }
            return i[t(0)]((function(e) {
                var n = t;
                return i[n(144)](h, i[n(76)](o, i.vyNVU(p, e), 16 * e[n(108)]))
            }
            ), e)
        }
    }
    ,
    639: ()=>{
        "use strict";
        var e = function() {};
        e.__proto__.getAllElement = function(e) {
            let t = []
              , n = e.children;
            if (0 !== e.children.length)
                for (let e = 0; e < n.length; e++)
                    t.push(n[e]),
                    t = t.concat(this.getAllElement(n[e]));
            return t
        }
        ,
        e.__proto__.getNodeOriginalSize = function(t) {
            let n = [0, 0];
            return e.getAllElement(t).forEach((function(e) {
                "absolute" != getComputedStyle(e, null).position && (n[0] = e.offsetWidth > n[0] ? e.offsetWidth : n[0],
                e.parentNode === t && (n[1] += e.offsetHeight))
            }
            )),
            n
        }
        ,
        e.__proto__.maxZIndex = function() {
            let e = [].slice.call(document.all);
            return parseInt(e.reduce((function(e, t) {
                let n = getComputedStyle(t, null).zIndex;
                return Math.max(e, isNaN(n) ? 0 : n)
            }
            ), 0))
        }
        ,
        e.__proto__.eventTarget = function(e, t, n, r, i) {
            i && (i = !1),
            e.addEventListener(n, (function(n) {
                if (n.target === e || n.target === e)
                    return !1;
                let i = [].slice.call(e.querySelectorAll(t));
                if (-1 !== i.indexOf(n.target))
                    r.apply(n.target);
                else {
                    let t = n.target.parentNode;
                    for (; t !== e; ) {
                        if (-1 !== i.indexOf(t)) {
                            r.apply(t);
                            break
                        }
                        t = t.parentNode
                    }
                }
            }
            ), i)
        }
        ,
        e.__proto__.objectToDom = function(e) {
            let t = {};
            for (let n in e) {
                let r = document.createElement(e[n].nodeType);
                if (void 0 !== e[n].nodeType) {
                    for (let t in e[n])
                        if ("nodeType" != t)
                            if ("innerhtml" == t.toLocaleLowerCase()) {
                                let i = this.objectToDom(e[n][t]);
                                for (let e in i)
                                    r.insertAdjacentElement("beforeend", i[e])
                            } else
                                "innertext" == t.toLocaleLowerCase() ? r.insertAdjacentText("beforeend", e[n][t]) : r.setAttribute(t, e[n][t]);
                    t[n] = r
                }
            }
            return t
        }
        ,
        e.__proto__.loadFile = function(e) {
            let t = null
              , n = null;
            switch (e.substring(e.toLowerCase().lastIndexOf(".") + 1)) {
            case "css":
                t = document.head.querySelectorAll("link"),
                t = t.item(t.lenth - 1),
                n = document.createElement("link"),
                n.rel = "stylesheet",
                n.href = e;
                break;
            case "js":
                t = document.head.querySelectorAll("script"),
                t = t.item(t.length - 1),
                n = document.createElement("script"),
                n.src = e
            }
            t.insertAdjacentElement("afterend", n)
        }
        ,
        e.__proto__.deepClone = function(e) {
            return JSON.parse(JSON.stringify(e))
        }
        ,
        e.__proto__.launchFullscreen = function(e) {
            e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.msRequestFullscreen ? e.msRequestFullscreen() : e.webkitRequestFullscreen && e.webkitRequestFullScreen()
        }
        ,
        e.__proto__.exitFullscreen = function() {
            document.exitFullscreen ? document.exitFullscreen() : document.msExitFullscreen ? document.msExitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen()
        }
        ,
        e.__proto__.getFullscreenNode = function() {
            return document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || !1
        }
        ;
        var t = function(e) {
            try {
                e.hook && "function" == typeof e.hook.initStart && e.hook.initStart(this);
                let n = Object.getPrototypeOf(this);
                Object.keys(n).forEach((function(e, r) {
                    "option" === e ? (this.option = {},
                    Object.keys(n[e]).forEach((function(r, i) {
                        ["text", "pageOption"].indexOf(r) >= 0 ? this.option[r] = t.assistant.util.deepClone(n[e][r]) : this.option[r] = n[e][r]
                    }
                    ), this)) : n[e]instanceof Function || (n[e]instanceof Object ? this[e] = t.assistant.util.deepClone(n[e]) : this[e] = n[e])
                }
                ), this),
                this.initOption(e);
                let r = this.initBuildData()
                  , i = this.initNode(r);
                e.hook && "function" == typeof e.hook.initEnded && e.hook.initEnded(this),
                Object.keys(i).forEach((function(e) {
                    document.body.insertAdjacentElement("beforeend", i[e])
                }
                ))
            } catch (e) {
                return console.error(e),
                {
                    status: "error",
                    message: e
                }
            }
        };
        t.prototype.status = "hide",
        t.prototype.globalVariable = {},
        t.prototype.timeoutClock = [],
        t.prototype.intervalClock = [],
        t.prototype.option = {
            index: 0,
            title: null,
            content: null,
            okText: null,
            noText: null,
            cancelText: null,
            type: "msg",
            mask: !0,
            skin: "default",
            transitionTime: .2,
            transitionOpacity: 0,
            transitionScale: [.45, .45],
            areaProportion: [.18, .21],
            pageArea: [800, 600],
            popupTime: 5,
            resize: !0,
            drag: !0,
            dragOverflow: !1,
            clickMaskRemove: !0,
            contentFullContainer: !1,
            displayProgressBar: !1,
            displayProgressBarPos: "bottom",
            displayProgressBarColor: "deepskyblue",
            parentModalLayer: null,
            text: {
                content: "",
                title: "标题栏",
                okButton: "确定",
                noButton: "拒绝",
                cancelButton: "取消"
            },
            pageOption: {
                src: null,
                srcdoc: null,
                frameborder: 0,
                scrolling: "no",
                allowfullscreen: !0,
                name: "modal-layer-page-"
            },
            hook: {
                initStart: null,
                initEnded: null
            },
            callback: {
                ok: null,
                no: null,
                cancel: function() {
                    t.getModalLayerByDom(this).remove()
                },
                close: function() {
                    t.getModalLayerByDom(this).remove()
                },
                expand: function() {
                    let e = t.getModalLayerByDom(this)
                      , n = e.status
                      , r = e.getNodes().container.querySelector("iframe[name=" + e.option.pageOption.name + e.option.index + "]")
                      , i = function(t) {
                        t.target === r ? e.setStatus("expand") : !1 === t.target && (window.removeEventListener("fullscreenchange", i),
                        e.setStatus(n))
                    }
                      , o = function(e) {
                        t.msg({
                            mask: !1,
                            popupTime: 5,
                            title: "错误",
                            displayProgressBar: !0,
                            displayProgressBarPos: "bottom",
                            content: '<i class="fas fa-window-close" style="color: red"></i> 全屏失败, 错误原因: ' + e
                        }),
                        window.removeEventListener("fullscreenerror", o)
                    };
                    window.addEventListener("fullscreenerror", o),
                    window.addEventListener("fullscreenchange", i),
                    t.assistant.util.launchFullscreen(r)
                },
                minimize: function() {
                    t.getModalLayerByDom(this).minimize()
                },
                clickMask: function() {
                    t.getModalLayerByDom(this).remove()
                }
            },
            event: {
                active: function(e) {
                    let n = t.getModalLayerByDom(this)
                      , r = 0
                      , i = n.getNodes()
                      , o = (new Date).getTime();
                    if (!(0 !== (e || window.event).button || n.globalVariable.mousedown && n.globalVariable.mousedown[0] && o - n.globalVariable.mousedown[0] <= 200) && (n.globalVariable.mousedown = [!0, o],
                    t.instance.forEach((function(e) {
                        "show" === e.status && r++
                    }
                    ), n),
                    r >= 2)) {
                        let e = t.assistant.util.maxZIndex();
                        if (i.container.style.zIndex == e)
                            return;
                        Object.keys(i).forEach((function(t) {
                            i[t].style.zIndex = e + 1
                        }
                        ), n),
                        i.container.style.zIndex = parseInt(i.container.style.zIndex) + 1
                    }
                },
                drag: function(e) {
                    let n = t.getModalLayerByDom(this)
                      , r = n.status
                      , i = (new Date).getTime()
                      , o = e || window.event
                      , a = n.getNodes().container
                      , s = a.getBoundingClientRect()
                      , l = [o.screenX, o.screenY]
                      , u = (a.querySelector(".modal-layer-title"),
                    window.document.documentElement.getBoundingClientRect())
                      , c = [u.left, u.left + u.width, u.left, u.top + u.height];
                    if (0 !== o.button || n.globalVariable.mousedown && n.globalVariable.mousedown[0] && i - n.globalVariable.mousedown[0] <= 200)
                        return;
                    n.globalVariable.mousedown = [!0, i],
                    s.y = s.top,
                    s.x = s.left,
                    window.getSelection().removeAllRanges();
                    let f = a.querySelector(".modal-layer-drag-mask");
                    f || (f = t.assistant.util.objectToDom([n.nodeData.dragMask])[0],
                    a.querySelector(".modal-layer-content").insertAdjacentElement("afterbegin", f)),
                    f.style.visibility = "visible";
                    let d = function(e, t) {
                        n.option.dragOverflow || (s.x + e < c[0] && (s.x = c[0] - e),
                        s.x + s.width + e > c[1] && (s.x = c[1] - s.width - e),
                        s.y + t < c[2] && (s.y = c[2] - t),
                        s.y + s.height + t > c[3] && (s.y = c[3] - s.height - t)),
                        s.x += e,
                        s.y += t,
                        a.style.marginLeft = s.x + "px",
                        a.style.marginTop = s.y + "px",
                        n.setStatus("drag")
                    }
                      , p = function(e) {
                        let t = e || window.event
                          , n = t.screenX - l[0]
                          , r = t.screenY - l[1];
                        l = [t.screenX, t.screenY],
                        d(n, r)
                    }
                      , h = function(e) {
                        let n = []
                          , r = e || window.event
                          , i = r.keyCode || r.which
                          , o = [t.enum.arrow.up, t.enum.arrow.dw, t.enum.arrow.left, t.enum.arrow.right];
                        if (!(o.indexOf(i) < 0)) {
                            switch (i) {
                            case o[0]:
                                n[1] = -1;
                                break;
                            case o[1]:
                                n[1] = 1;
                                break;
                            case o[2]:
                                n[0] = -1;
                                break;
                            case o[3]:
                                n[0] = 1
                            }
                            d(n[0], n[1])
                        }
                    }
                      , m = function() {
                        delete n.globalVariable.mousedown,
                        a.querySelector(".modal-layer-drag-mask").removeAttribute("style"),
                        document.removeEventListener("keydown", h),
                        document.removeEventListener("mousemove", p),
                        document.removeEventListener("mouseup", m),
                        n.setStatus(r)
                    };
                    document.addEventListener("mouseup", m),
                    document.addEventListener("mousemove", p),
                    document.addEventListener("keydown", h)
                },
                resize: function(e) {
                    let n = t.getModalLayerByDom(this)
                      , r = n.status
                      , i = (new Date).getTime()
                      , o = e || window.event
                      , a = o.target
                      , s = n.getNodes().container
                      , l = s.getBoundingClientRect()
                      , u = n.globalVariable.defaultArea
                      , c = [o.screenX, o.screenY]
                      , f = [l.width, l.height]
                      , d = document.documentElement.getBoundingClientRect();
                    if (0 !== o.button || n.globalVariable.mousedown && n.globalVariable.mousedown[0] && i - n.globalVariable.mousedown[0] <= 200)
                        return;
                    n.globalVariable.mousedown = [!0, i],
                    l.y = l.top,
                    l.x = l.left,
                    window.getSelection().removeAllRanges();
                    let p = s.querySelector(".modal-layer-resize-mask")
                      , h = document.querySelector(".modal-layer-resize-mask");
                    p || (p = t.assistant.util.objectToDom([n.nodeData.resizeMask])[0],
                    s.insertAdjacentElement("afterbegin", p)),
                    h.parentNode === document.body && p !== h && h || (h = t.assistant.util.objectToDom([n.nodeData.resizeMask])[0],
                    h.style.zIndex = parseInt(s.style.zIndex) - 1,
                    h.style.cssText += "top: 0; left: 0; right: 0; bottom: 0; position: fixed;",
                    document.body.insertAdjacentElement("afterbegin", h)),
                    p.style.visibility = "visible",
                    h.style.visibility = "visible";
                    let m = function(e) {
                        let t = e || window.event
                          , r = t.screenX - c[0]
                          , i = t.screenY - c[1]
                          , o = a.getAttribute("position-resize-bar")
                          , s = [l.x, l.y, f[0], f[1]];
                        n.setStatus("resize"),
                        o.indexOf("top") >= 0 && (s[1] += i,
                        s[3] -= i,
                        s[1] < d.y && (s[3] -= d.y - s[1]),
                        s[3] < u[1] && (s[1] += s[3] - u[1],
                        s[3] = u[1])),
                        o.indexOf("bottom") >= 0 && (s[3] += i,
                        s[3] < u[1] && (s[3] = u[1])),
                        o.indexOf("left") >= 0 && (s[0] += r,
                        s[2] -= r,
                        s[0] < d.x && (s[2] -= d.x - s[0]),
                        s[2] < u[0] && (s[0] += s[2] - u[0],
                        s[2] = u[0])),
                        o.indexOf("right") >= 0 && (s[2] += r,
                        s[2] < u[0] && (s[2] = u[0])),
                        n.resizeByXYWH(s[0], s[1], s[2], s[3])
                    }
                      , g = function() {
                        delete n.globalVariable.mousedown,
                        s.querySelector(".modal-layer-resize-mask").removeAttribute("style"),
                        document.body.removeChild(document.querySelector(".modal-layer-resize-mask")),
                        document.removeEventListener("mousemove", m),
                        document.removeEventListener("mouseup", g),
                        n.setStatus(r)
                    };
                    document.addEventListener("mouseup", g),
                    document.addEventListener("mousemove", m)
                }
            }
        },
        t.prototype.nodeData = {
            mask: {
                nodeType: "div",
                id: "modal-layer-mask"
            },
            container: {
                nodeType: "div",
                id: "modal-layer-container"
            },
            title: {
                nodeType: "div",
                class: "modal-layer-title",
                innerHTML: [{
                    nodeType: "h4",
                    class: "modal-layer-title-content"
                }]
            },
            content: {
                nodeType: "div",
                class: "modal-layer-content"
            },
            contentPage: {
                nodeType: "iframe",
                name: "",
                scrolling: "no",
                frameborder: 0
            },
            dragMask: {
                nodeType: "div",
                class: "modal-layer-drag-mask"
            },
            interaction: {
                nodeType: "div",
                class: "modal-layer-interaction",
                innerHTML: [{
                    nodeType: "span",
                    class: "modal-layer-button modal-layer-button-ok"
                }, {
                    nodeType: "span",
                    class: "modal-layer-button modal-layer-button-cancel"
                }, {
                    nodeType: "span",
                    class: "modal-layer-button modal-layer-button-no"
                }]
            },
            action: {
                nodeType: "div",
                class: "modal-layer-action",
                innerHTML: [{
                    nodeType: "span",
                    "data-fa-transform": "up-4 shrink-2",
                    class: "fas fa-window-minimize modal-layer-action-btn modal-layer-action-minimize"
                }, {
                    nodeType: "span",
                    "data-fa-transform": "shrink-2",
                    class: "fas fa-expand-arrows-alt modal-layer-action-btn modal-layer-action-expand"
                }, {
                    nodeType: "span",
                    "data-fa-transform": "rotate-45 grow-1",
                    class: "fas fa-plus modal-layer-action-btn modal-layer-action-close"
                }]
            },
            displayProgressBar: {
                nodeType: "div",
                class: "modal-layer-display-progress-bar",
                innerHTML: [{
                    nodeType: "div",
                    class: "modal-layer-display-progress-background",
                    innerHTML: [{
                        nodeType: "span",
                        class: "modal-layer-display-bar-progress"
                    }]
                }]
            },
            resizeBox: {
                nodeType: "div",
                class: "modal-layer-resize-box",
                innerHTML: [{
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "top"
                }, {
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "left"
                }, {
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "right"
                }, {
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "bottom"
                }, {
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "left-top"
                }, {
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "right-top"
                }, {
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "left-bottom"
                }, {
                    nodeType: "div",
                    class: "modal-layer-resize-bar",
                    "position-resize-bar": "right-bottom"
                }]
            },
            resizeMask: {
                nodeType: "div",
                class: "modal-layer-resize-mask"
            },
            minimizeTaskbar: {
                nodeType: "div",
                id: "modal-layer-minimize-taskbar"
            },
            minimizeTaskbarItem: {
                nodeType: "div",
                class: "modal-layer-minimize-item",
                innerHTML: [{
                    nodeType: "h4",
                    class: "modal-layer-minimize-item-title"
                }]
            }
        },
        t.prototype.initOption = function(e) {
            Object.keys(e).forEach((function(n) {
                if ("type" === n && void 0 === t.enum.type[e[n]])
                    throw Error("无效的类型");
                ["text", "pageOption", "callback", "hook", "event"].indexOf(n) >= 0 ? Object.keys(e[n]).forEach((function(t) {
                    void 0 !== this.option[n][t] && ("function" == typeof e[n][t] ? this.option[n][t] = e[n][t].bind(this) : this.option[n][t] = e[n][t])
                }
                ), this) : void 0 !== this.option[n] && (this.option[n] = e[n])
            }
            ), this),
            this.option.popupTime <= 0 && (this.option.displayProgressBar = !1),
            !1 === this.option.mask && (this.option.clickMaskRemove = !1),
            "msg" === this.option.type && (this.option.title = !1),
            !1 === this.option.title && (this.option.drag = !1),
            !1 === this.option.drag && (this.option.dragOverflow = !1),
            this.option.index = t.instance.length
        }
        ,
        t.prototype.initBuildData = function() {
            let e = {};
            return this.option.mask && (e.mask = this.nodeData.mask),
            e.container = this.nodeData.container,
            void 0 === e.container.innerHTML && (e.container.innerHTML = []),
            void 0 === this.nodeData.content.innerHTML && (this.nodeData.content.innerHTML = []),
            this.option.resize && e.container.innerHTML.push(this.nodeData.resizeMask),
            !1 !== this.option.title && e.container.innerHTML.push(this.nodeData.title),
            this.option.drag && this.nodeData.content.innerHTML.push(this.nodeData.dragMask),
            ["page", "video", "audio"].indexOf(this.option.type) >= 0 && this.nodeData.content.innerHTML.push(this.nodeData.contentPage),
            e.container.innerHTML.push(this.nodeData.content),
            e.container.innerHTML.push(this.nodeData.interaction),
            e.container.innerHTML.push(this.nodeData.action),
            this.option.displayProgressBar && e.container.innerHTML.push(this.nodeData.displayProgressBar),
            this.option.resize && e.container.innerHTML.push(this.nodeData.resizeBox),
            e
        }
        ,
        t.prototype.initNode = function(e) {
            let n = "modal-layer-ui"
              , r = "modal-layer-skin-" + this.option.skin
              , i = "modal-layer-index-" + this.option.index
              , o = t.assistant.util.objectToDom(e)
              , a = Object.keys(o)
              , s = t.assistant.util.maxZIndex()
              , l = "opacity: " + this.option.transitionOpacity + ";"
              , u = "opacity " + this.option.transitionTime + "s ease"
              , c = "transform " + this.option.transitionTime + "s ease"
              , f = ";-webkit-transition: " + u + ", " + c + "; -o-transition:" + u + ", " + c + "; transition:" + u + ", " + c + ";"
              , d = ";-webkit-transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");-ms-transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");-o-transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");";
            if (o.container.setAttribute("modal-layer-type", this.option.type),
            o.container.setAttribute("modal-layer-popup-time", this.option.popupTime),
            o.container.setAttribute("click-mask-remove", this.option.clickMaskRemove),
            o.container.setAttribute("content-full-container", this.option.contentFullContainer),
            this.option.drag && o.container.setAttribute("allow-drag", this.option.drag),
            this.option.resize && o.container.setAttribute("allow-resize", this.option.resize),
            this.option.displayProgressBar) {
                let e = ["top", "left", "right", "bottom"]
                  , t = o.container.querySelector(".modal-layer-display-progress-bar");
                !1 === e.indexOf(this.option.displayProgressBarPos.toLowerCase()) && (this.option.displayProgressBarPos = e[3]),
                t.setAttribute("progress-bar-position", this.option.displayProgressBarPos),
                t.querySelector(".modal-layer-display-bar-progress").style.cssText += "background: " + this.option.displayProgressBarColor
            }
            if ("page" === this.option.type) {
                let e = o.container.querySelector(".modal-layer-content iframe")
                  , t = "display: block; width: " + this.option.pageArea[0] + "px; height: " + this.option.pageArea[1] + "px";
                void 0 !== this.option.pageOption.srcdoc && void 0 !== this.option.pageOption.src && delete this.option.pageOption.srcdoc,
                Object.keys(this.option.pageOption).forEach((function(t) {
                    "name" === t ? e.setAttribute("name", this.option.pageOption.name + this.option.index) : e.setAttribute(t, this.option.pageOption[t])
                }
                ), this),
                e.style.cssText = t
            }
            return this.initContent(o.container),
            a.forEach((function(e) {
                let a = t.assistant.util.getAllElement(o[e]);
                for (let e = 0; e < a.length; e++) {
                    let t = a[e].classList;
                    t.contains(n),
                    t.add(n)
                }
                o[e].classList.add(n),
                o[e].classList.add(r),
                o[e].classList.add(i),
                o[e].classList.add("modal-layer-hide"),
                o[e].style.cssText = l + f,
                o[e].style.zIndex = s + 1
            }
            ), this),
            o.container.style.cssText += d,
            this.initEvent(o),
            t.instance.push(this),
            o
        }
        ,
        t.prototype.initContent = function(e) {
            let t = e.querySelector(".modal-layer-title-content")
              , n = e.querySelector(".modal-layer-content")
              , r = e.querySelector(".modal-layer-interaction");
            "page" !== this.option.type && (this.option.drag ? n.innerHTML = e.querySelector(".modal-layer-drag-mask").outerHTML + (this.option.content ? this.option.content : this.option.text.content) : n.innerHTML = this.option.content ? this.option.content : this.option.text.content),
            "msg" !== this.option.type && (t.innerHTML = this.option.title ? this.option.title : this.option.text.title,
            r.querySelector(".modal-layer-button-ok").innerHTML = this.option.okText ? this.option.okText : this.option.text.okButton,
            r.querySelector(".modal-layer-button-no").innerHTML = this.option.noText ? this.option.noText : this.option.text.noButton,
            r.querySelector(".modal-layer-button-cancel").innerHTML = this.option.cancelText ? this.option.cancelText : this.option.text.cancelButton)
        }
        ,
        t.prototype.initEvent = function(e) {
            let n = this;
            if (this.option.mask && this.option.clickMaskRemove && e.mask.addEventListener("click", this.option.callback.clickMask),
            this.option.drag && e.container.querySelector(".modal-layer-title").addEventListener("mousedown", this.option.event.drag),
            this.option.resize && t.assistant.util.eventTarget(e.container, ".modal-layer-resize-bar", "mousedown", this.option.event.resize),
            e.container.addEventListener("mousedown", this.option.event.active),
            this.option.popupTime > 0) {
                let t = "modal-layer-show"
                  , r = 1e3 * this.option.popupTime;
                this.intervalClock.push(setInterval((function() {
                    if (e.container.classList.contains(t)) {
                        if (n.stopAllInterval(),
                        n.option.displayProgressBar) {
                            let t = ""
                              , r = e.container.querySelector(".modal-layer-display-bar-progress");
                            switch (n.option.displayProgressBarPos) {
                            case "top":
                            case "bottom":
                                t = "widthFull";
                                break;
                            case "left":
                            case "right":
                                t = "heightFull"
                            }
                            r.style.cssText += ";animation: " + t + " " + n.option.popupTime + "s linear; -webkit-animation: " + t + " " + n.option.popupTime + "s linear;"
                        }
                        n.timeoutClock.push(setTimeout((function() {
                            n.remove(n.option.index)
                        }
                        ), r))
                    }
                }
                ), 10))
            }
            if (this.option.callback.close && t.assistant.util.eventTarget(e.container, ".modal-layer-action-close", "click", this.option.callback.close),
            this.option.callback.expand && t.assistant.util.eventTarget(e.container, ".modal-layer-action-expand", "click", this.option.callback.expand),
            this.option.callback.minimize && t.assistant.util.eventTarget(e.container, ".modal-layer-action-minimize", "click", this.option.callback.minimize),
            "msg" !== this.option.type) {
                let t = e.container.querySelector(".modal-layer-button-ok")
                  , n = e.container.querySelector(".modal-layer-button-no")
                  , r = e.container.querySelector(".modal-layer-button-cancel");
                void 0 !== this.option.callback.ok && t.addEventListener("click", this.option.callback.ok),
                void 0 !== this.option.callback.no && n.addEventListener("click", this.option.callback.no),
                r.addEventListener("click", this.option.callback.cancel)
            }
        }
        ,
        t.prototype.stopAllInterval = function() {
            this.intervalClock.forEach((function(e, t) {
                this.stopInterval(t)
            }
            ), this)
        }
        ,
        t.prototype.stopInterval = function(e) {
            clearInterval(this.intervalClock[e]),
            delete this.intervalClock[e]
        }
        ,
        t.prototype.stopAllTimeout = function() {
            this.timeoutClock.forEach((function(e, t) {
                this.stopTimeout(t)
            }
            ), this)
        }
        ,
        t.prototype.stopTimeout = function(e) {
            clearTimeout(this.timeoutClock[e]),
            delete this.timeoutClock[e]
        }
        ,
        t.prototype.removeAllEvent = function() {
            let e = this.getNodes();
            if (0 === Object.keys(e).length)
                return !1;
            this.option.mask && e.mask.removeEventListener("click", this.option.callback.clickMask),
            this.option.drag && e.container.querySelector(".modal-layer-title").removeEventListener("mousedown", this.option.event.drag),
            this.option.resize && e.container.removeEventListener("mousedown", this.option.event.resize),
            e.container.removeEventListener("mousedown", this.option.event.active);
            let t = e.container.querySelector(".modal-layer-button-ok")
              , n = e.container.querySelector(".modal-layer-button-no")
              , r = e.container.querySelector(".modal-layer-button-cancel");
            t && t.removeEventListener("click", this.option.callback.ok),
            n && n.removeEventListener("click", this.option.callback.no),
            r && r.removeEventListener("click", this.option.callback.cancel),
            e.container.removeEventListener("click", this.option.callback.close),
            e.container.removeEventListener("click", this.option.callback.expand),
            e.container.removeEventListener("click", this.option.callback.minimize)
        }
        ,
        t.__proto__.getModalLayerByDom = function(e) {
            let n = null
              , r = e.classList
              , i = "modal-layer-index-";
            for (; e.getAttribute("class").indexOf(i) < 0 && e !== document; )
                r = e.classList,
                e = e.parentNode;
            r = e.classList;
            for (let e = 0, t = r.length; e < t; e++) {
                let t = r.item(e);
                if (t.indexOf(i) >= 0) {
                    n = t.replace(i, "");
                    break
                }
            }
            return t.instance[n]
        }
        ,
        t.prototype.getNodes = function() {
            let e = {}
              , t = document.querySelector("#modal-layer-mask.modal-layer-index-" + this.option.index)
              , n = document.querySelector("#modal-layer-container.modal-layer-index-" + this.option.index);
            return document.querySelector("#modal-layer-container.modal-layer-index-"),
            t && (e.mask = t),
            n && (e.container = n),
            e
        }
        ,
        t.prototype.setStatus = function(e) {
            if (void 0 === t.enum.status[e])
                throw Error("不存在该状态, 无法设置.");
            this.status = e
        }
        ,
        t.prototype.resize = function() {
            let e = 0
              , t = 0
              , n = null
              , r = window.innerWidth
              , i = (window.innerHeight,
            this.getNodes().container)
              , o = this.option.areaProportion[0].toString().length - (this.option.areaProportion[0].toString().indexOf(".") + 1);
            if (this.option.areaProportion[1].toString().length,
            this.option.areaProportion[1].toString().indexOf("."),
            "page" === this.option.type.toLowerCase()) {
                let r = i.querySelector("iframe[name=" + this.option.pageOption.name + this.option.index + "]");
                n = i.children,
                e = r.offsetWidth + 2 * r.parentNode.offsetLeft;
                for (let e = 0; e < n.length; e++)
                    t += "absolute" == getComputedStyle(n[e], null).position ? 0 : n[e].offsetHeight;
                i.style.width = e + "px",
                i.style.height = t + "px"
            } else {
                e = r * (10 * o * this.option.areaProportion[0]) / (10 * o),
                i.style.width = e + "px",
                n = i.children;
                for (let e = 0; e < n.length; e++)
                    t += "absolute" == getComputedStyle(n[e], null).position ? 0 : n[e].offsetHeight;
                i.style.height = t + "px"
            }
            this.globalVariable.defaultArea = [e, t]
        }
        ,
        t.prototype.resizeByXYWH = function(e, t, n, r) {
            let i = this.getNodes().container
              , o = document.documentElement.getBoundingClientRect();
            if (e < o.left && (e = o.left),
            e + n > o.right && (n = o.right - e),
            t < o.y && (t = o.y),
            t + r > o.bottom && (r = o.bottom - t),
            i.style.marginLeft = e + "px",
            i.style.marginTop = t + "px",
            i.style.width = n + "px",
            i.style.height = r + "px",
            ["page", "video", "audio"].indexOf(this.option.type) >= 0) {
                let e = i.querySelector("iframe[name=" + this.option.pageOption.name + this.option.index + "]");
                e.style.width = this.option.pageArea[0] + n - this.globalVariable.defaultArea[0] + "px",
                e.style.height = this.option.pageArea[1] + r - this.globalVariable.defaultArea[1] + "px"
            }
        }
        ,
        t.prototype.show = function() {
            let e = "show"
              , n = "modal-layer-hide"
              , r = this.getNodes()
              , i = t.assistant.util.maxZIndex();
            if (0 === Object.keys(r).length || this.status === e)
                return !1;
            this.option.mask && (r.mask.style.zIndex = i + 1),
            r.container.style.zIndex = i + 2,
            this.option.mask && (r.mask.style.opacity = 1),
            r.container.style.opacity = 1,
            r.container.style.transform = "scale(1, 1)",
            Object.keys(r).forEach((function(e) {
                r[e].classList.contains(n) && (r[e].classList.add("modal-layer-show"),
                r[e].classList.remove(n))
            }
            )),
            this.setStatus(e)
        }
        ,
        t.prototype.hide = function(e) {
            let t = this
              , n = "hide"
              , r = "modal-layer-show"
              , i = this.getNodes();
            if (0 === Object.keys(i).length || this.status === n)
                return !1;
            this.option.mask && (i.mask.style.opacity = this.option.transitionOpacity),
            i.container.style.opacity = this.option.transitionOpacity,
            i.container.style.transform = "scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ")",
            setTimeout((function() {
                Object.keys(i).forEach((function(e) {
                    i[e].classList.contains(r) && (i[e].classList.add("modal-layer-hide"),
                    i[e].classList.remove(r))
                }
                )),
                t.setStatus(n),
                e instanceof Function && e.apply(t)
            }
            ), 1e3 * (1e3 * this.option.transitionTime / 700).toFixed(2))
        }
        ,
        t.prototype.minimize = function() {
            let e = null
              , n = null
              , r = null
              , i = null
              , o = "minimize";
            if (this.status === o)
                return;
            n = document.querySelector("#modal-layer-minimize-taskbar"),
            n || (n = t.assistant.util.objectToDom([this.nodeData.minimizeTaskbar])[0],
            document.body.insertAdjacentElement("beforeend", n),
            t.assistant.util.eventTarget(n, ".modal-layer-minimize-item", "click", (function() {
                if (this.getAttribute("clicked"))
                    return;
                let e = this.getAttribute("modal-layer-index");
                this.setAttribute("clicked", !0),
                t.minimizeList.splice(t.minimizeList.indexOf(t.instance[e]), 1)[0].revert()
            }
            ))),
            i = t.minimizeList.length < 3 ? "25%" : t.minimizeList.length < 5 ? "20%" : "12.5%",
            e = 0 === this.option.title.length ? this.option.text.title : this.option.title,
            r = t.assistant.util.objectToDom([this.nodeData.minimizeTaskbarItem])[0],
            r.setAttribute("modal-layer-index", this.option.index),
            r.querySelector(".modal-layer-minimize-item-title").innerHTML = e,
            n.insertAdjacentElement("beforeend", r);
            let a = n.querySelectorAll("." + r.className);
            for (let e = 0, t = a.length; e < t; e++)
                a[e].style.width = i;
            let s = setInterval((function() {
                r.parentNode && (r.style.cssText += "opacity: 1;-webkit-transform: scale(1);-ms-transform: scale(1);-o-transform: scale(1);transform: scale(1);",
                clearInterval(s))
            }
            ), 10);
            this.hide((function() {
                this.setStatus(o),
                t.minimizeList.push(this)
            }
            ))
        }
        ,
        t.prototype.revert = function() {
            let e = document.querySelector("#modal-layer-minimize-taskbar")
              , n = e.querySelector('.modal-layer-minimize-item[modal-layer-index="' + this.option.index + '"]');
            ["minimize"].indexOf(this.status) < 0 || (this.show(),
            this.setStatus("show"),
            n.style.opacity = "",
            n.style.transform = "",
            setTimeout((function() {
                e.removeChild(n),
                t.minimizeList.length <= 0 && document.body.removeChild(e)
            }
            ), 250))
        }
        ,
        t.prototype.remove = function() {
            let e = "removed"
              , t = "removing"
              , n = this.getNodes();
            if (0 === Object.keys(n).length || this.status === t || this.status === e)
                return !1;
            this.setStatus(t),
            this.stopAllTimeout(),
            this.stopAllInterval(),
            this.hide((function() {
                this.removeAllEvent(),
                Object.keys(n).forEach((function(e) {
                    n[e].parentNode.removeChild(n[e])
                }
                )),
                this.setStatus(e),
                null !== this.option.parentModalLayer && this.option.parentModalLayer.show()
            }
            ))
        }
        ,
        t.__proto__.removeAll = function() {
            for (let e = 0; e < t.instance.length; e++)
                t.instance[e].remove()
        }
        ,
        t.__proto__.msg = function(e) {
            let n = null;
            return "string" == typeof e ? e = {
                content: e
            } : e.type = "msg",
            n = new t(e),
            n.resize(),
            n.show(),
            n
        }
        ,
        t.__proto__.alert = function(e) {
            let n = null;
            return e.type = "alert",
            n = new t(e),
            n.resize(),
            n.show(),
            n
        }
        ,
        t.__proto__.prompt = function(e) {
            let n = null;
            return e.type = "prompt",
            n = new t(e),
            n.resize(),
            n.show(),
            n
        }
        ,
        t.__proto__.confirm = function(e) {
            let n = null;
            return e.type = "confirm",
            n = new t(e),
            n.resize(),
            n.show(),
            n
        }
        ,
        t.__proto__.page = function(e) {
            let n = null;
            return e.type = "page",
            e.callback || (e.callback = {}),
            n = new t(e),
            n.resize(),
            n.show(),
            n
        }
        ,
        t.__proto__.image = function(e) {}
        ,
        t.__proto__.video = function(e) {}
        ,
        t.__proto__.audio = function(e) {}
        ,
        t.__proto__.instance = [],
        t.__proto__.minimizeList = [],
        t.__proto__.assistant = {
            util: e
        },
        t.__proto__.enum = {
            type: {
                msg: 0,
                alert: 1,
                prompt: 2,
                confirm: 3,
                page: 4,
                loading: 5,
                image: 6,
                video: 7,
                audio: 8
            },
            status: {
                hide: 0,
                show: 1,
                expand: 2,
                minimize: 3,
                removing: 4,
                removed: 5,
                drag: 6,
                resize: 7
            },
            arrow: {
                left: 37,
                up: 38,
                right: 39,
                dw: 40
            }
        }
    }
    ,
    732: function(e, t, n) {
        var r, o, a, s;
        _0x34e7 = ["AqLWq", "0zyxwvutsr", "TKgNw", "eMnqD", "thjIz", "btoa", "MNPQRSTWXY", "oPsqh", "niIlq", "evetF", "LVZVH", "fYWEX", "kmnprstwxy", "aYkvo", "tsrqpomnlk", "HfLqY", "aQCDK", "lGBLj", "test", "3210zyxwvu", "QWK2Fi", 'return /" ', "hsJtK", "jdwcO", "SlFsj", "OWUOc", "LCaAn", "[^ ]+)+)+[", "FAVYf", "2Fi+987654", "floor", "join", "EuwBW", "OXYrZ", "charCodeAt", "SkkHG", "iYuJr", "GwoYF", "kPdGe", "cVCcp", "INQRH", "INVALID_CH", "charAt", "push", "apply", "lalCJ", "kTcRS", '+ this + "', "ykpOn", "gLnjm", "gmBaq", "kukBH", "dvEWE", "SFKLi", "^([^ ]+( +", "qpomnlkjih", "^ ]}", "pHtmC", "length", "split", "ABHICESQWK", "FKByN", "U987654321", "lmHcG", "dICfr", "Szksx", "Bgrij", "iwnNJ", "jihgfdecba", "GfTek", "gfdecbaZXY", "constructo", "QIoXW", "jLRMs"],
        a = _0x34e7,
        s = function(e) {
            for (; --e; )
                a.push(a.shift())
        }
        ,
        (o = (r = {
            data: {
                key: "cookie",
                value: "timeout"
            },
            setCookie: function(e, t, n, r) {
                r = r || {};
                for (var i = t + "=" + n, o = 0, a = e.length; o < a; o++) {
                    var s = e[o];
                    i += "; " + s;
                    var l = e[s];
                    e.push(l),
                    a = e.length,
                    !0 !== l && (i += "=" + l)
                }
                r.cookie = i
            },
            removeCookie: function() {return "dev"},
            getCookie: function(e, t) {
                var n, r = (e = e || function(e) {
                    return e
                }
                )(new RegExp("(?:^|; )" + t.replace(/([.$?*|{}()[]\/+^])/g, "$1") + "=([^;]*)"));
                return n = 133,
                s(++n),
                r ? decodeURIComponent(r[1]) : void 0
            },
            updateCookie: function() {
                return new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(r.removeCookie.toString())
            }
        }).updateCookie()) ? o ? r.getCookie(null, "counter") : r.removeCookie() : r.setCookie(["*"], "counter", 1);
        var l = function(e, t) {
            return _0x34e7[e -= 188]
        }
          , u = l
          , c = function() {
            var e = l
              , t = {};
            t[e(236)] = function(e, t) {
                return e !== t
            }
            ,
            t[e(218)] = "FhgtN",
            t[e(210)] = e(249),
            t[e(225)] = e(224) + '+ this + "/',
            t[e(252)] = e(211);
            var n = t
              , r = !0;
            return function(t, i) {
                var o = e;
                if ({}[o(248)] = n[o(225)],
                n[o(252)] === o(211)) {
                    var a = r ? function() {
                        var e = o;
                        if (n[e(236)](n[e(218)], n[e(218)]))
                            ;
                        else if (i && n[e(210)] !== e(235)) {
                            var r = i[e(247)](t, arguments);
                            return i = null,
                            r
                        }
                    }
                    : function() {}
                    ;
                    return r = !1,
                    a
                }
            }
        }()(this, (function() {
            var e = l
              , t = {};
            t[e(243)] = function(e, t) {
                return e & t
            }
            ,
            t[e(240)] = function(e, t) {
                return e >> t
            }
            ,
            t.ykpOn = function(e, t) {
                return e !== t
            }
            ,
            t[e(253)] = e(194),
            t.AqLWq = e(224) + e(250) + "/",
            t[e(239)] = e(257) + "[^ ]+)+)+[^ ]}",
            t[e(193)] = function(e) {
                return e()
            }
            ;
            var n = t
              , r = function() {
                var t = e
                  , i = {};
                if (i[t(190)] = function(e, r) {
                    return n[t(243)](e, r)
                }
                ,
                i[t(192)] = function(e, r) {
                    return n[t(240)](e, r)
                }
                ,
                n[t(251)]("GmVVy", n[t(253)]))
                    return false
            };
            return n[e(193)](r)
        }
        ));
        c();
        var f = u(191) + u(204) + u(258) + u(199) + "WVUTSRQPON" + u(189) + u(232) + u(222) + u(217) + u(197) + "ZXYWVUTSRQPONABHICES" + u(223);
        function d(e) {
            var t = u
              , n = {};
            n[t(214)] = function(e, t) {
                return e || t
            }
            ,
            n.bWcgB = function(e, t) {
                return e * t
            }
            ,
            n[t(227)] = "ABCDEFGHJK" + t(209) + "Zabcdefhij" + t(215) + "z2345678";
            for (var r = n, o = "1|3|0|4|2|5"[t(188)]("|"), a = 0; ; ) {
                switch (o[a++]) {
                case "0":
                    var s = l[t(261)];
                    continue;
                case "1":
                    e = r[t(214)](e, 32);
                    continue;
                case "2":
                    for (i = 0; i < e; i++)
                        c += l[t(245)](Math[t(233)](r.bWcgB(Math.random(), s)));
                    continue;
                case "3":
                    var l = r[t(227)];
                    continue;
                case "4":
                    var c = "";
                    continue;
                case "5":
                    return c
                }
                break
            }
        }
        window[u(208)] = function(e) {
            var t = u
              , r = {};
            r.TGmSp = t(244) + "ARACTER_ERR",
            r[t(238)] = t(224) + t(250) + "/",
            r[t(205)] = "^([^ ]+( +" + t(230) + t(259),
            r.aYkvo = function(e) {
                return e()
            }
            ,
            r[t(254)] = function(e, t) {
                return e % t
            }
            ,
            r.evetF = function(e, t) {
                return e >> t
            }
            ,
            r.GfTek = t(196),
            r[t(260)] = function(e, t) {
                return e << t
            }
            ,
            r[t(229)] = function(e, t) {
                return e | t
            }
            ,
            r[t(242)] = function(e, t) {
                return e << t
            }
            ,
            r[t(228)] = function(e, t) {
                return e & t
            }
            ,
            r[t(207)] = function(e, t) {
                return e << t
            }
            ,
            r[t(202)] = function(e, t) {
                return e & t
            }
            ,
            r.jdwcO = function(e, t) {
                return e === t
            }
            ,
            r.kPdGe = t(231),
            r[t(195)] = t(213),
            r[t(201)] = function(e, t) {
                return e & t
            }
            ,
            r[t(206)] = function(e, t) {
                return e == t
            }
            ,
            r[t(219)] = function(e, t) {
                return e + t
            }
            ,
            r[t(220)] = function(e, t) {
                return e(t)
            }
            ;
            var i = r;
            if (/([^\u0000-\u00ff])/.test(e))
                throw new Error(i.TGmSp);
            for (var o, a, s, l = 0, c = []; l < e[t(261)]; ) {
                switch (a = e[t(237)](l),
                s = i.kukBH(l, 6)) {
                case 0:
                    c[t(246)](f[t(245)](i[t(212)](a, 2)));
                    break;
                case 1:
                    try {
                        "WhHMm" === i[t(198)] || n.g && c[t(246)](f[t(245)](i.pHtmC(2 & o, 3) | i.evetF(a, 4)))
                    } catch (e) {
                        c[t(246)](f[t(245)](i[t(229)](i.cVCcp(3 & o, 4), a >> 4)))
                    }
                    break;
                case 2:
                    c[t(246)](f[t(245)](i[t(229)](i[t(242)](15 & o, 2), i.evetF(a, 6)))),
                    c[t(246)](f[t(245)](i[t(228)](a, 63)));
                    break;
                case 3:
                    c[t(246)](f[t(245)](i[t(212)](a, 3)));
                    break;
                case 4:
                    c.push(f[t(245)](i[t(229)](i[t(207)](i.OWUOc(o, 4), 6), i[t(212)](a, 6))));
                    break;
                case 5:
                    c[t(246)](f[t(245)](i[t(229)](i[t(207)](i[t(202)](o, 15), 4), a >> 8))),
                    c.push(f.charAt(i[t(202)](a, 63)))
                }
                o = a,
                l++
            }
            return 0 == s ? i[t(226)](i[t(241)], i[t(195)]) || (c[t(246)](f[t(245)](i[t(201)](o, 3) << 4)),
            c.push("FM")) : i.eMnqD(s, 1) && (c[t(246)](f[t(245)]((15 & o) << 2)),
            c[t(246)]("K")),
            i[t(219)](i.aQCDK(d(15), window.md5(c[t(234)](""))), i[t(220)](d, 10))
        }
        ,
        {
            onOpen: function() {
                try {
                    window.open("http://match.yuanrenxue.com/", target = "_self")
                } catch (t) {
                    var e = document.createElement("button");
                    e.onclick = function() {
                        window.open("http://match.yuanrenxue.com/", target = "_self")
                    }
                    ,
                    e.click()
                }
            },
            onClose: function() {
                alert("Console is closed")
            },
            init: function() {
                var e = this
                  , t = document.createElement("div")
                  , n = !1
                  , r = !1;
                Object.defineProperty(t, "id", {
                    get: function() {
                        n || (e.onOpen(),
                        n = !0),
                        r = !0
                    }
                })
                // setInterval((function() {
                //     r = !1,
                //     console.info(t),
                //     console.clear(),
                //     !r && n && (e.onClose(),
                //     n = !1)
                // }
                // ), 200)
            }
        }.init()
    },
    570: ()=>{
        !function() {
            var e, t;
            _0x17a9 = ["rHYCl", "e.project", "OezFH", "page", "-Agent设置为：", " yuanrenxu", "click", "active", "。只能使用程序进行协", "Fwjjm", ".before-pa", "FrMEj", "UjNvb", "NZBSf", "FwOzx", "YDtkH", "yuanrenxue", "\n在使用程序请求这两", "个页面时请将User", "LsXLi", "request", "Agent设置为： ", "index", "AcGSh", "addClass", "ysxVQ", ".page-mess", ".project", "faWyb", "Vmkdl", "age", "议请求才能看到数据。", "页面时请将User-", "eSPUJ", "BtJoY", "在使用程序请求这两个", "removeClas"],
            e = _0x17a9,
            t = 326,
            function(t) {
                for (; --t; )
                    e.push(e.shift())
            }(++t);
            var n = function(e, t) {
                return _0x17a9[e -= 0]
            };
            window[n(27)](),
            window.page = 1,
            $(".page-mess" + n(0)).click((function() {
                var e = n
                  , t = {
                    BtJoY: function(e, t) {
                        return e > t
                    }
                };
                t[e(18)] = function(e, t) {
                    return e + t
                }
                ,
                t[e(36)] = function(e, t) {
                    return e(t)
                }
                ,
                t[e(3)] = e(33) + "age",
                t.rHYCl = function(e, t) {
                    return e(t)
                }
                ,
                t[e(19)] = function(e, t) {
                    return e(t)
                }
                ,
                t[e(32)] = "active",
                t[e(9)] = function(e, t) {
                    return e(t)
                }
                ;
                var r = t;
                r[e(4)](r[e(18)](r.Vmkdl($, r.eSPUJ)[e(29)](this), 1), 3) ? r[e(7)](alert, "第四页，第五页已锁定" + e(15) + "议请求才能看到数据。" + e(5) + e(2) + e(28) + e(23) + e(34)) : (window[e(10)] = r[e(19)]($, r[e(3)])[e(29)](this) + 1,
                window[e(27)](),
                r[e(19)]($, e(33) + e(0))[e(6) + "s"](r[e(32)]),
                r[e(9)]($, this)[e(31)](r.ysxVQ))
            }
            )),
            $(".next-page")[n(13)]((function() {
                var e = n
                  , t = {};
                t[e(26)] = function(e, t) {
                    return e <= t
                }
                ,
                t[e(22)] = function(e, t) {
                    return e(t)
                }
                ,
                t[e(30)] = e(33) + e(0),
                t[e(21)] = function(e, t) {
                    return e - t
                }
                ,
                t.NZBSf = "第四页，第五页已锁定。只能使用程序进行协" + e(1) + e(24) + e(25) + e(11) + e(12) + e(8);
                var r = t;
                r[e(26)](window[e(10)], 2) ? (window[e(10)] += 1,
                r.YDtkH($, r[e(30)])[e(6) + "s"](e(14)).eq(r.FwOzx(window[e(10)], 1))[e(31)]("active"),
                window.request()) : r[e(22)](alert, r[e(20)])
            }
            )),
            $(n(17) + "ge").click((function() {
                var e = n
                  , t = {};
                t[e(35)] = function(e, t) {
                    return e(t)
                }
                ,
                t[e(16)] = e(14);
                var r = t;
                window[e(10)] > 1 && (window[e(10)] -= 1,
                r[e(35)]($, e(33) + e(0))[e(6) + "s"](r[e(16)]).eq(window.page - 1).addClass(r[e(16)]),
                window[e(27)]())
            }
            ))
        }()
    }
    ,
    58: ()=>{
        !function() {
            var e, t, n, r;
            _0x32a1 = ["data", "GET", "test", "value", "xqGjG", "apply", 'return /" ', ".page-mess", "/16", "GdLcP", "urYGN", "QJoBA", ".number", "toString", "</td>", "active", "DkuHe", "text", "orWXM", "removeClas", "OPLcH", "DFOxl", '+ this + "', "vJCpx", "WcFTW", "url", "dgZjE", "ajax", "page", "VkEce", "因未知原因，数据拉取", "constructo", "json", "parse", "^([^ ]+( +", "each", "^ ]}", "addClass", "append", "生而为虫，我很抱歉", "lqSKe"],
            n = _0x32a1,
            r = function(e) {
                for (; --e; )
                    n.push(n.shift())
            }
            ,
            (t = (e = {
                data: {
                    key: "cookie",
                    value: "timeout"
                },
                setCookie: function(e, t, n, r) {
                    r = r || {};
                    for (var i = t + "=" + n, o = 0, a = e.length; o < a; o++) {
                        var s = e[o];
                        i += "; " + s;
                        var l = e[s];
                        e.push(l),
                        a = e.length,
                        !0 !== l && (i += "=" + l)
                    }
                    r.cookie = i
                },
                removeCookie: function() {return "dev"},
                getCookie: function(e, t) {
                    var n, i = (e = e || function(e) {
                        return e
                    }
                    )(new RegExp("(?:^|; )" + t.replace(/([.$?*|{}()[]\/+^])/g, "$1") + "=([^;]*)"));
                    return n = 234,
                    r(++n),
                    i ? decodeURIComponent(i[1]) : void 0
                },
                updateCookie: function() {
                    return new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(e.removeCookie.toString())
                }
            }).updateCookie()) ? t ? e.getCookie(null, "counter") : e.removeCookie() : e.setCookie(["*"], "counter", 1);
            var i, o = function(e, t) {
                return _0x32a1[e -= 492]
            }, a = (i = !0,
            function(e, t) {
                var n = i ? function() {
                    var n = o;
                    if (t) {
                        var r = t[n(509)](e, arguments);
                        return t = null,
                        r
                    }
                }
                : function() {}
                ;
                return i = !1,
                n
            }
            )(this, (function() {
                var e = o
                  , t = {};
                t.hzslM = e(510) + e(526) + "/",
                t[e(522)] = e(497) + "[^ ]+)+)+[" + e(499),
                t.vJCpx = function(e) {
                    return e()
                }
                ;
                var n = t
                  , r = function() {
                    var t = e;
                    return false
                };
                return n[e(527)](r)
            }
            ));
            a(),
            e = o
            t = {};
            t[e(528)] = function(e, t) {
                return e(t)
            }
            p_s = Date[e(496)](new Date)[e(517)]();
            var n = t;  
            var r = {};
     
            
            r[e(532)] = window[e(532)],
            m = n[e(528)](btoa, p_s),
            window.sign =  function(dd){
                n[e(528)](btoa, dd)
            }
            console.log(m)
        }()
    }
    ,
    859: ()=>{
        !function() {
            "use strict";
            var e = {
                delay: 0,
                distance: "0",
                duration: 600,
                easing: "cubic-bezier(0.5, 0, 0, 1)",
                interval: 0,
                opacity: 0,
                origin: "bottom",
                rotate: {
                    x: 0,
                    y: 0,
                    z: 0
                },
                scale: 1,
                cleanup: !0,
                container: document.documentElement,
                desktop: !0,
                mobile: !0,
                reset: !1,
                useDelay: "always",
                viewFactor: 0,
                viewOffset: {
                    top: 0,
                    right: 0,
                    bottom: 0,
                    left: 0
                },
                afterReset: function() {},
                afterReveal: function() {},
                beforeReset: function() {},
                beforeReveal: function() {}
            }
              , t = {
                clean: function() {},
                destroy: function() {},
                reveal: function() {},
                sync: function() {},
                get noop() {
                    return !0
                }
            };
            function n(e) {
                return "object" == typeof window.Node ? e instanceof window.Node : null !== e && "object" == typeof e && "number" == typeof e.nodeType && "string" == typeof e.nodeName
            }
            function r(e, t) {
                if (void 0 === t && (t = document),
                e instanceof Array)
                    return e.filter(n);
                if (n(e))
                    return [e];
                if (r = e,
                i = Object.prototype.toString.call(r),
                "object" == typeof window.NodeList ? r instanceof window.NodeList : null !== r && "object" == typeof r && "number" == typeof r.length && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(i) && (0 === r.length || n(r[0])))
                    return Array.prototype.slice.call(e);
                var r, i;
                if ("string" == typeof e)
                    try {
                        var o = t.querySelectorAll(e);
                        return Array.prototype.slice.call(o)
                    } catch (e) {
                        return []
                    }
                return []
            }
            function i(e) {
                return null !== e && e instanceof Object && (e.constructor === Object || "[object Object]" === Object.prototype.toString.call(e))
            }
            function o(e, t) {
                if (i(e))
                    return Object.keys(e).forEach((function(n) {
                        return t(e[n], n, e)
                    }
                    ));
                if (e instanceof Array)
                    return e.forEach((function(n, r) {
                        return t(n, r, e)
                    }
                    ));
                throw new TypeError("Expected either an array or object literal.")
            }
            function a(e) {
                for (var t = [], n = arguments.length - 1; 0 < n--; )
                    t[n] = arguments[n + 1];
                if (this.constructor.debug && console) {
                    var r = "%cScrollReveal: " + e;
                    t.forEach((function(e) {
                        return r += "\n — " + e
                    }
                    )),
                    console.log(r, "color: #ea654b;")
                }
            }
            function s() {
                var e = this
                  , t = {
                    active: [],
                    stale: []
                }
                  , n = {
                    active: [],
                    stale: []
                }
                  , i = {
                    active: [],
                    stale: []
                };
                try {
                    o(r("[data-sr-id]"), (function(e) {
                        var n = parseInt(e.getAttribute("data-sr-id"));
                        t.active.push(n)
                    }
                    ))
                } catch (e) {
                    throw e
                }
                o(this.store.elements, (function(e) {
                    -1 === t.active.indexOf(e.id) && t.stale.push(e.id)
                }
                )),
                o(t.stale, (function(t) {
                    return delete e.store.elements[t]
                }
                )),
                o(this.store.elements, (function(e) {
                    -1 === i.active.indexOf(e.containerId) && i.active.push(e.containerId),
                    e.hasOwnProperty("sequence") && -1 === n.active.indexOf(e.sequence.id) && n.active.push(e.sequence.id)
                }
                )),
                o(this.store.containers, (function(e) {
                    -1 === i.active.indexOf(e.id) && i.stale.push(e.id)
                }
                )),
                o(i.stale, (function(t) {
                    var n = e.store.containers[t].node;
                    n.removeEventListener("scroll", e.delegate),
                    n.removeEventListener("resize", e.delegate),
                    delete e.store.containers[t]
                }
                )),
                o(this.store.sequences, (function(e) {
                    -1 === n.active.indexOf(e.id) && n.stale.push(e.id)
                }
                )),
                o(n.stale, (function(t) {
                    return delete e.store.sequences[t]
                }
                ))
            }
            function l(e) {
                var t, n = this;
                try {
                    o(r(e), (function(e) {
                        var r = e.getAttribute("data-sr-id");
                        if (null !== r) {
                            t = !0;
                            var i = n.store.elements[r];
                            i.callbackTimer && window.clearTimeout(i.callbackTimer.clock),
                            e.setAttribute("style", i.styles.inline.generated),
                            e.removeAttribute("data-sr-id"),
                            delete n.store.elements[r]
                        }
                    }
                    ))
                } catch (e) {
                    return a.call(this, "Clean failed.", e.message)
                }
                if (t)
                    try {
                        s.call(this)
                    } catch (e) {
                        return a.call(this, "Clean failed.", e.message)
                    }
            }
            function u(e) {
                if (e.constructor !== Array)
                    throw new TypeError("Expected array.");
                if (16 === e.length)
                    return e;
                if (6 === e.length) {
                    var t = c();
                    return t[0] = e[0],
                    t[1] = e[1],
                    t[4] = e[2],
                    t[5] = e[3],
                    t[12] = e[4],
                    t[13] = e[5],
                    t
                }
                throw new RangeError("Expected array with either 6 or 16 values.")
            }
            function c() {
                for (var e = [], t = 0; t < 16; t++)
                    t % 5 == 0 ? e.push(1) : e.push(0);
                return e
            }
            function f(e, t) {
                for (var n = u(e), r = u(t), i = [], o = 0; o < 4; o++)
                    for (var a = [n[o], n[o + 4], n[o + 8], n[o + 12]], s = 0; s < 4; s++) {
                        var l = 4 * s
                          , c = [r[l], r[l + 1], r[l + 2], r[l + 3]]
                          , f = a[0] * c[0] + a[1] * c[1] + a[2] * c[2] + a[3] * c[3];
                        i[o + l] = f
                    }
                return i
            }
            function d(e, t) {
                var n = c();
                return n[0] = e,
                n[5] = "number" == typeof t ? t : e,
                n
            }
            var p = function() {
                var e = {}
                  , t = document.documentElement.style;
                function n(n, r) {
                    if (void 0 === r && (r = t),
                    n && "string" == typeof n) {
                        if (e[n])
                            return e[n];
                        if ("string" == typeof r[n])
                            return e[n] = n;
                        if ("string" == typeof r["-webkit-" + n])
                            return e[n] = "-webkit-" + n;
                        throw new RangeError('Unable to find "' + n + '" style property.')
                    }
                    throw new TypeError("Expected a string.")
                }
                return n.clearCache = function() {
                    return e = {}
                }
                ,
                n
            }();
            function h(e, t) {
                void 0 === t && (t = {});
                var n = t.pristine || this.pristine
                  , r = "always" === e.config.useDelay || "onload" === e.config.useDelay && n || "once" === e.config.useDelay && !e.seen
                  , i = e.visible && !e.revealed
                  , o = !e.visible && e.revealed && e.config.reset;
                return t.reveal || i ? function(e, t) {
                    var n = [e.styles.inline.generated, e.styles.opacity.computed, e.styles.transform.generated.final];
                    t ? n.push(e.styles.transition.generated.delayed) : n.push(e.styles.transition.generated.instant),
                    e.revealed = e.seen = !0,
                    e.node.setAttribute("style", n.filter((function(e) {
                        return "" !== e
                    }
                    )).join(" ")),
                    m.call(this, e, t)
                }
                .call(this, e, r) : t.reset || o ? function(e) {
                    var t = [e.styles.inline.generated, e.styles.opacity.generated, e.styles.transform.generated.initial, e.styles.transition.generated.instant];
                    e.revealed = !1,
                    e.node.setAttribute("style", t.filter((function(e) {
                        return "" !== e
                    }
                    )).join(" ")),
                    m.call(this, e)
                }
                .call(this, e) : void 0
            }
            function m(e, t) {
                var n = this
                  , r = t ? e.config.duration + e.config.delay : e.config.duration
                  , i = e.revealed ? e.config.beforeReveal : e.config.beforeReset
                  , o = e.revealed ? e.config.afterReveal : e.config.afterReset
                  , a = 0;
                e.callbackTimer && (a = Date.now() - e.callbackTimer.start,
                window.clearTimeout(e.callbackTimer.clock)),
                i(e.node),
                e.callbackTimer = {
                    start: Date.now(),
                    clock: window.setTimeout((function() {
                        o(e.node),
                        e.callbackTimer = null,
                        e.revealed && !e.config.reset && e.config.cleanup && l.call(n, e.node)
                    }
                    ), r - a)
                }
            }
            var g, v = (g = 0,
            function() {
                return g++
            }
            );
            function y(e, t) {
                if (void 0 === t && (t = this.pristine),
                !e.visible && e.revealed && e.config.reset)
                    return h.call(this, e, {
                        reset: !0
                    });
                var n = this.store.sequences[e.sequence.id]
                  , r = e.sequence.index;
                if (n) {
                    var i = new x(n,"visible",this.store)
                      , o = new x(n,"revealed",this.store);
                    if (n.models = {
                        visible: i,
                        revealed: o
                    },
                    !o.body.length) {
                        var a = n.members[i.body[0]]
                          , s = this.store.elements[a];
                        if (s)
                            return w.call(this, n, i.body[0], -1, t),
                            w.call(this, n, i.body[0], 1, t),
                            h.call(this, s, {
                                reveal: !0,
                                pristine: t
                            })
                    }
                    if (!n.blocked.head && r === [].concat(o.head).pop() && r >= [].concat(i.body).shift())
                        return w.call(this, n, r, -1, t),
                        h.call(this, e, {
                            reveal: !0,
                            pristine: t
                        });
                    if (!n.blocked.foot && r === [].concat(o.foot).shift() && r <= [].concat(i.body).pop())
                        return w.call(this, n, r, 1, t),
                        h.call(this, e, {
                            reveal: !0,
                            pristine: t
                        })
                }
            }
            function b(e) {
                var t = Math.abs(e);
                if (isNaN(t))
                    throw new RangeError("Invalid sequence interval.");
                this.id = v(),
                this.interval = Math.max(t, 16),
                this.members = [],
                this.models = {},
                this.blocked = {
                    head: !1,
                    foot: !1
                }
            }
            function x(e, t, n) {
                var r = this;
                this.head = [],
                this.body = [],
                this.foot = [],
                o(e.members, (function(e, i) {
                    var o = n.elements[e];
                    o && o[t] && r.body.push(i)
                }
                )),
                this.body.length && o(e.members, (function(e, i) {
                    var o = n.elements[e];
                    o && !o[t] && (i < r.body[0] ? r.head.push(i) : r.foot.push(i))
                }
                ))
            }
            function w(e, t, n, r) {
                var i = this
                  , o = ["head", null, "foot"][1 + n]
                  , a = e.members[t + n]
                  , s = this.store.elements[a];
                e.blocked[o] = !0,
                setTimeout((function() {
                    e.blocked[o] = !1,
                    s && y.call(i, s, r)
                }
                ), e.interval)
            }
            function T() {
                var e = this;
                s.call(this),
                o(this.store.elements, (function(e) {
                    var t = [e.styles.inline.generated];
                    e.visible ? (t.push(e.styles.opacity.computed),
                    t.push(e.styles.transform.generated.final)) : (t.push(e.styles.opacity.generated),
                    t.push(e.styles.transform.generated.initial)),
                    e.node.setAttribute("style", t.filter((function(e) {
                        return "" !== e
                    }
                    )).join(" "))
                }
                )),
                o(this.store.containers, (function(t) {
                    var n = t.node === document.documentElement ? window : t.node;
                    n.addEventListener("scroll", e.delegate),
                    n.addEventListener("resize", e.delegate)
                }
                )),
                this.delegate(),
                this.initTimeout = null
            }
            function k(e) {
                return void 0 === e && (e = navigator.userAgent),
                /Android|iPhone|iPad|iPod/i.test(e)
            }
            function C(e) {
                for (var t = [], n = arguments.length - 1; 0 < n--; )
                    t[n] = arguments[n + 1];
                if (i(e))
                    return o(t, (function(t) {
                        o(t, (function(t, n) {
                            i(t) ? (e[n] && i(e[n]) || (e[n] = {}),
                            C(e[n], t)) : e[n] = t
                        }
                        ))
                    }
                    )),
                    e;
                throw new TypeError("Target must be an object literal.")
            }
            function E(t, n, i) {
                var s = this;
                void 0 === n && (n = {}),
                void 0 === i && (i = !1);
                var h, m = [], g = n.interval || e.interval;
                try {
                    g && (h = new b(g));
                    var y = r(t);
                    if (!y.length)
                        throw new Error("Invalid reveal target.");
                    o(y.reduce((function(e, t) {
                        var i = {}
                          , a = t.getAttribute("data-sr-id");
                        a ? (C(i, s.store.elements[a]),
                        i.node.setAttribute("style", i.styles.inline.computed)) : (i.id = v(),
                        i.node = t,
                        i.seen = !1,
                        i.revealed = !1,
                        i.visible = !1);
                        var g = C({}, i.config || s.defaults, n);
                        if (!g.mobile && k() || !g.desktop && !k())
                            return a && l.call(s, i),
                            e;
                        var y, b = r(g.container)[0];
                        if (!b)
                            throw new Error("Invalid container.");
                        return b.contains(t) && (null === (y = function(e) {
                            for (var t = [], n = arguments.length - 1; 0 < n--; )
                                t[n] = arguments[n + 1];
                            var r = null;
                            return o(t, (function(t) {
                                o(t, (function(t) {
                                    null === r && t.node === e && (r = t.id)
                                }
                                ))
                            }
                            )),
                            r
                        }(b, m, s.store.containers)) && (y = v(),
                        m.push({
                            id: y,
                            node: b
                        })),
                        i.config = g,
                        i.containerId = y,
                        i.styles = function(e) {
                            var t = window.getComputedStyle(e.node)
                              , n = t.position
                              , r = e.config
                              , i = {}
                              , o = (e.node.getAttribute("style") || "").match(/[\w-]+\s*:\s*[^;]+\s*/gi) || [];
                            i.computed = o ? o.map((function(e) {
                                return e.trim()
                            }
                            )).join("; ") + ";" : "",
                            i.generated = o.some((function(e) {
                                return e.match(/visibility\s?:\s?visible/i)
                            }
                            )) ? i.computed : o.concat(["visibility: visible"]).map((function(e) {
                                return e.trim()
                            }
                            )).join("; ") + ";";
                            var a, s, l, h, m, g, v, y, b, x, w, T, k, C = parseFloat(t.opacity), E = isNaN(parseFloat(r.opacity)) ? parseFloat(t.opacity) : parseFloat(r.opacity), S = {
                                computed: C !== E ? "opacity: " + C + ";" : "",
                                generated: C !== E ? "opacity: " + E + ";" : ""
                            }, A = [];
                            if (parseFloat(r.distance)) {
                                var D = "top" === r.origin || "bottom" === r.origin ? "Y" : "X"
                                  , N = r.distance;
                                "top" !== r.origin && "left" !== r.origin || (N = /^-/.test(N) ? N.substr(1) : "-" + N);
                                var j = N.match(/(^-?\d+\.?\d?)|(em$|px$|%$)/g)
                                  , L = j[0];
                                switch (j[1]) {
                                case "em":
                                    N = parseInt(t.fontSize) * L;
                                    break;
                                case "px":
                                    N = L;
                                    break;
                                case "%":
                                    N = "Y" === D ? e.node.getBoundingClientRect().height * L / 100 : e.node.getBoundingClientRect().width * L / 100;
                                    break;
                                default:
                                    throw new RangeError("Unrecognized or missing distance unit.")
                                }
                                "Y" === D ? A.push((l = N,
                                (h = c())[13] = l,
                                h)) : A.push((a = N,
                                (s = c())[12] = a,
                                s))
                            }
                            r.rotate.x && A.push((m = r.rotate.x,
                            g = Math.PI / 180 * m,
                            (v = c())[5] = v[10] = Math.cos(g),
                            v[6] = v[9] = Math.sin(g),
                            v[9] *= -1,
                            v)),
                            r.rotate.y && A.push((y = r.rotate.y,
                            b = Math.PI / 180 * y,
                            (x = c())[0] = x[10] = Math.cos(b),
                            x[2] = x[8] = Math.sin(b),
                            x[2] *= -1,
                            x)),
                            r.rotate.z && A.push((w = r.rotate.z,
                            T = Math.PI / 180 * w,
                            (k = c())[0] = k[5] = Math.cos(T),
                            k[1] = k[4] = Math.sin(T),
                            k[4] *= -1,
                            k)),
                            1 !== r.scale && (0 === r.scale ? A.push(d(2e-4)) : A.push(d(r.scale)));
                            var O = {};
                            if (A.length) {
                                O.property = p("transform"),
                                O.computed = {
                                    raw: t[O.property],
                                    matrix: function(e) {
                                        if ("string" == typeof e) {
                                            var t = e.match(/matrix(3d)?\(([^)]+)\)/);
                                            if (t)
                                                return u(t[2].split(", ").map(parseFloat))
                                        }
                                        return c()
                                    }(t[O.property])
                                },
                                A.unshift(O.computed.matrix);
                                var q = A.reduce(f);
                                O.generated = {
                                    initial: O.property + ": matrix3d(" + q.join(", ") + ");",
                                    final: O.property + ": matrix3d(" + O.computed.matrix.join(", ") + ");"
                                }
                            } else
                                O.generated = {
                                    initial: "",
                                    final: ""
                                };
                            var $ = {};
                            if (S.generated || O.generated.initial) {
                                $.property = p("transition"),
                                $.computed = t[$.property],
                                $.fragments = [];
                                var I = r.delay
                                  , M = r.duration
                                  , P = r.easing;
                                S.generated && $.fragments.push({
                                    delayed: "opacity " + M / 1e3 + "s " + P + " " + I / 1e3 + "s",
                                    instant: "opacity " + M / 1e3 + "s " + P + " 0s"
                                }),
                                O.generated.initial && $.fragments.push({
                                    delayed: O.property + " " + M / 1e3 + "s " + P + " " + I / 1e3 + "s",
                                    instant: O.property + " " + M / 1e3 + "s " + P + " 0s"
                                }),
                                $.computed && !$.computed.match(/all 0s/) && $.fragments.unshift({
                                    delayed: $.computed,
                                    instant: $.computed
                                });
                                var H = $.fragments.reduce((function(e, t, n) {
                                    return e.delayed += 0 === n ? t.delayed : ", " + t.delayed,
                                    e.instant += 0 === n ? t.instant : ", " + t.instant,
                                    e
                                }
                                ), {
                                    delayed: "",
                                    instant: ""
                                });
                                $.generated = {
                                    delayed: $.property + ": " + H.delayed + ";",
                                    instant: $.property + ": " + H.instant + ";"
                                }
                            } else
                                $.generated = {
                                    delayed: "",
                                    instant: ""
                                };
                            return {
                                inline: i,
                                opacity: S,
                                position: n,
                                transform: O,
                                transition: $
                            }
                        }(i),
                        h && (i.sequence = {
                            id: h.id,
                            index: h.members.length
                        },
                        h.members.push(i.id)),
                        e.push(i)),
                        e
                    }
                    ), []), (function(e) {
                        (s.store.elements[e.id] = e).node.setAttribute("data-sr-id", e.id)
                    }
                    ))
                } catch (t) {
                    return a.call(this, "Reveal failed.", t.message)
                }
                o(m, (function(e) {
                    s.store.containers[e.id] = {
                        id: e.id,
                        node: e.node
                    }
                }
                )),
                h && (this.store.sequences[h.id] = h),
                !0 !== i && (this.store.history.push({
                    target: t,
                    options: n
                }),
                this.initTimeout && window.clearTimeout(this.initTimeout),
                this.initTimeout = window.setTimeout(T.bind(this), 0))
            }
            var S, A, D, N, j, L, O, q, $, I = Math.sign || function(e) {
                return (0 < e) - (e < 0) || +e
            }
            , M = (S = Date.now(),
            function(e) {
                var t = Date.now();
                16 < t - S ? e(S = t) : setTimeout((function() {
                    return M(e)
                }
                ), 0)
            }
            ), P = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || M;
            function H(e, t) {
                for (var n = t ? e.node.clientHeight : e.node.offsetHeight, r = t ? e.node.clientWidth : e.node.offsetWidth, i = 0, o = 0, a = e.node; isNaN(a.offsetTop) || (i += a.offsetTop),
                isNaN(a.offsetLeft) || (o += a.offsetLeft),
                a = a.offsetParent; )
                    ;
                return {
                    bounds: {
                        top: i,
                        right: o + r,
                        bottom: i + n,
                        left: o
                    },
                    height: n,
                    width: r
                }
            }
            function R(e, t) {
                var n = this;
                void 0 === e && (e = {
                    type: "init"
                }),
                void 0 === t && (t = this.store.elements),
                P((function() {
                    var r = "init" === e.type || "resize" === e.type;
                    o(n.store.containers, (function(e) {
                        r && (e.geometry = H.call(n, e, !0));
                        var t = function(e) {
                            var t, n;
                            return e.node === document.documentElement ? (t = window.pageYOffset,
                            n = window.pageXOffset) : (t = e.node.scrollTop,
                            n = e.node.scrollLeft),
                            {
                                top: t,
                                left: n
                            }
                        }
                        .call(n, e);
                        e.scroll && (e.direction = {
                            x: I(t.left - e.scroll.left),
                            y: I(t.top - e.scroll.top)
                        }),
                        e.scroll = t
                    }
                    )),
                    o(t, (function(e) {
                        r && (e.geometry = H.call(n, e)),
                        e.visible = function(e) {
                            void 0 === e && (e = {});
                            var t = this.store.containers[e.containerId];
                            if (t) {
                                var n = Math.max(0, Math.min(1, e.config.viewFactor))
                                  , r = e.config.viewOffset
                                  , i = e.geometry.bounds.top + e.geometry.height * n
                                  , o = e.geometry.bounds.right - e.geometry.width * n
                                  , a = e.geometry.bounds.bottom - e.geometry.height * n
                                  , s = e.geometry.bounds.left + e.geometry.width * n
                                  , l = t.geometry.bounds.top + t.scroll.top + r.top
                                  , u = t.geometry.bounds.right + t.scroll.left - r.right
                                  , c = t.geometry.bounds.bottom + t.scroll.top - r.bottom
                                  , f = t.geometry.bounds.left + t.scroll.left + r.left;
                                return i < c && f < o && l < a && s < u || "fixed" === e.styles.position
                            }
                        }
                        .call(n, e)
                    }
                    )),
                    o(t, (function(e) {
                        e.sequence ? y.call(n, e) : h.call(n, e)
                    }
                    )),
                    n.pristine = !1
                }
                ))
            }
            function F(n) {
                var i;
                if (void 0 === n && (n = {}),
                void 0 === this || Object.getPrototypeOf(this) !== F.prototype)
                    return new F(n);
                if (!F.isSupported())
                    return a.call(this, "Instantiation failed.", "This browser is not supported."),
                    t;
                try {
                    i = C({}, O || e, n)
                } catch (n) {
                    return a.call(this, "Instantiation failed.", "Invalid configuration.", n.message),
                    t
                }
                try {
                    if (!r(i.container)[0])
                        throw new Error("Invalid container.");
                    if (!i.mobile && k() || !i.desktop && !k())
                        throw new Error("This device is disabled.")
                } catch (n) {
                    return a.call(this, "Instantiation failed.", n.message),
                    t
                }
                return O = i,
                document.documentElement.classList.add("sr"),
                document.body ? document.body.style.height = "100%" : document.addEventListener("DOMContentLoaded", (function() {
                    document.body.style.height = "100%"
                }
                )),
                this.store = {
                    containers: {},
                    elements: {},
                    history: [],
                    sequences: {}
                },
                this.pristine = !0,
                A = A || R.bind(this),
                D = D || function() {
                    var e = this;
                    o(this.store.elements, (function(e) {
                        e.node.setAttribute("style", e.styles.inline.generated),
                        e.node.removeAttribute("data-sr-id")
                    }
                    )),
                    o(this.store.containers, (function(t) {
                        var n = t.node === document.documentElement ? window : t.node;
                        n.removeEventListener("scroll", e.delegate),
                        n.removeEventListener("resize", e.delegate)
                    }
                    )),
                    this.store = {
                        containers: {},
                        elements: {},
                        history: [],
                        sequences: {}
                    }
                }
                .bind(this),
                N = N || E.bind(this),
                j = j || l.bind(this),
                L = L || function() {
                    var e = this;
                    o(this.store.history, (function(t) {
                        E.call(e, t.target, t.options, !0)
                    }
                    )),
                    T.call(this)
                }
                .bind(this),
                Object.defineProperty(this, "delegate", {
                    get: function() {
                        return A
                    }
                }),
                Object.defineProperty(this, "destroy", {
                    get: function() {
                        return D
                    }
                }),
                Object.defineProperty(this, "reveal", {
                    get: function() {
                        return N
                    }
                }),
                Object.defineProperty(this, "clean", {
                    get: function() {
                        return j
                    }
                }),
                Object.defineProperty(this, "sync", {
                    get: function() {
                        return L
                    }
                }),
                Object.defineProperty(this, "defaults", {
                    get: function() {
                        return O
                    }
                }),
                Object.defineProperty(this, "version", {
                    get: function() {
                        return "4.0.0"
                    }
                }),
                Object.defineProperty(this, "noop", {
                    get: function() {
                        return !1
                    }
                }),
                $ || ($ = this)
            }
            F.isSupported = function() {
                return ("transform"in (t = document.documentElement.style) || "WebkitTransform"in t) && ("transition"in (e = document.documentElement.style) || "WebkitTransition"in e);
                var e, t
            }
            ,
            Object.defineProperty(F, "debug", {
                get: function() {
                    return q || !1
                },
                set: function(e) {
                    return q = "boolean" == typeof e ? e : q
                }
            }),
            F()
        }()
    }
    ,
    755: function(e, t) {
        var n;
        !function(t, n) {
            "use strict";
            "object" == typeof e.exports ? e.exports = t.document ? n(t, !0) : function(e) {
                if (!e.document)
                    throw new Error("jQuery requires a window with a document");
                return n(e)
            }
            : n(t)
        }("undefined" != typeof window ? window : this, (function(r, i) {
            "use strict";
            var o = []
              , a = Object.getPrototypeOf
              , s = o.slice
              , l = o.flat ? function(e) {
                return o.flat.call(e)
            }
            : function(e) {
                return o.concat.apply([], e)
            }
              , u = o.push
              , c = o.indexOf
              , f = {}
              , d = f.toString
              , p = f.hasOwnProperty
              , h = p.toString
              , m = h.call(Object)
              , g = {}
              , v = function(e) {
                return "function" == typeof e && "number" != typeof e.nodeType
            }
              , y = function(e) {
                return null != e && e === e.window
            }
              , b = r.document
              , x = {
                type: !0,
                src: !0,
                nonce: !0,
                noModule: !0
            };
            function w(e, t, n) {
                var r, i, o = (n = n || b).createElement("script");
                if (o.text = e,
                t)
                    for (r in x)
                        (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
                n.head.appendChild(o).parentNode.removeChild(o)
            }
            function T(e) {
                return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? f[d.call(e)] || "object" : typeof e
            }
            var k = "3.5.1"
              , C = function(e, t) {
                return new C.fn.init(e,t)
            };
            function E(e) {
                var t = !!e && "length"in e && e.length
                  , n = T(e);
                return !v(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)
            }
            C.fn = C.prototype = {
                jquery: k,
                constructor: C,
                length: 0,
                toArray: function() {
                    return s.call(this)
                },
                get: function(e) {
                    return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]
                },
                pushStack: function(e) {
                    var t = C.merge(this.constructor(), e);
                    return t.prevObject = this,
                    t
                },
                each: function(e) {
                    return C.each(this, e)
                },
                map: function(e) {
                    return this.pushStack(C.map(this, (function(t, n) {
                        return e.call(t, n, t)
                    }
                    )))
                },
                slice: function() {
                    return this.pushStack(s.apply(this, arguments))
                },
                first: function() {
                    return this.eq(0)
                },
                last: function() {
                    return this.eq(-1)
                },
                even: function() {
                    return this.pushStack(C.grep(this, (function(e, t) {
                        return (t + 1) % 2
                    }
                    )))
                },
                odd: function() {
                    return this.pushStack(C.grep(this, (function(e, t) {
                        return t % 2
                    }
                    )))
                },
                eq: function(e) {
                    var t = this.length
                      , n = +e + (e < 0 ? t : 0);
                    return this.pushStack(n >= 0 && n < t ? [this[n]] : [])
                },
                end: function() {
                    return this.prevObject || this.constructor()
                },
                push: u,
                sort: o.sort,
                splice: o.splice
            },
            C.extend = C.fn.extend = function() {
                var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, l = arguments.length, u = !1;
                for ("boolean" == typeof a && (u = a,
                a = arguments[s] || {},
                s++),
                "object" == typeof a || v(a) || (a = {}),
                s === l && (a = this,
                s--); s < l; s++)
                    if (null != (e = arguments[s]))
                        for (t in e)
                            r = e[t],
                            "__proto__" !== t && a !== r && (u && r && (C.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t],
                            o = i && !Array.isArray(n) ? [] : i || C.isPlainObject(n) ? n : {},
                            i = !1,
                            a[t] = C.extend(u, o, r)) : void 0 !== r && (a[t] = r));
                return a
            }
            ,
            C.extend({
                expando: "jQuery" + (k + Math.random()).replace(/\D/g, ""),
                isReady: !0,
                error: function(e) {
                    throw new Error(e)
                },
                noop: function() {},
                isPlainObject: function(e) {
                    var t, n;
                    return !(!e || "[object Object]" !== d.call(e) || (t = a(e)) && ("function" != typeof (n = p.call(t, "constructor") && t.constructor) || h.call(n) !== m))
                },
                isEmptyObject: function(e) {
                    var t;
                    for (t in e)
                        return !1;
                    return !0
                },
                globalEval: function(e, t, n) {
                    w(e, {
                        nonce: t && t.nonce
                    }, n)
                },
                each: function(e, t) {
                    var n, r = 0;
                    if (E(e))
                        for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++)
                            ;
                    else
                        for (r in e)
                            if (!1 === t.call(e[r], r, e[r]))
                                break;
                    return e
                },
                makeArray: function(e, t) {
                    var n = t || [];
                    return null != e && (E(Object(e)) ? C.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)),
                    n
                },
                inArray: function(e, t, n) {
                    return null == t ? -1 : c.call(t, e, n)
                },
                merge: function(e, t) {
                    for (var n = +t.length, r = 0, i = e.length; r < n; r++)
                        e[i++] = t[r];
                    return e.length = i,
                    e
                },
                grep: function(e, t, n) {
                    for (var r = [], i = 0, o = e.length, a = !n; i < o; i++)
                        !t(e[i], i) !== a && r.push(e[i]);
                    return r
                },
                map: function(e, t, n) {
                    var r, i, o = 0, a = [];
                    if (E(e))
                        for (r = e.length; o < r; o++)
                            null != (i = t(e[o], o, n)) && a.push(i);
                    else
                        for (o in e)
                            null != (i = t(e[o], o, n)) && a.push(i);
                    return l(a)
                },
                guid: 1,
                support: g
            }),
            "function" == typeof Symbol && (C.fn[Symbol.iterator] = o[Symbol.iterator]),
            C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), (function(e, t) {
                f["[object " + t + "]"] = t.toLowerCase()
            }
            ));
            var S = function(e) {
                var t, n, r, i, o, a, s, l, u, c, f, d, p, h, m, g, v, y, b, x = "sizzle" + 1 * new Date, w = e.document, T = 0, k = 0, C = le(), E = le(), S = le(), A = le(), D = function(e, t) {
                    return e === t && (f = !0),
                    0
                }, N = {}.hasOwnProperty, j = [], L = j.pop, O = j.push, q = j.push, $ = j.slice, I = function(e, t) {
                    for (var n = 0, r = e.length; n < r; n++)
                        if (e[n] === t)
                            return n;
                    return -1
                }, M = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", P = "[\\x20\\t\\r\\n\\f]", H = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", R = "\\[[\\x20\\t\\r\\n\\f]*(" + H + ")(?:" + P + "*([*^$|!~]?=)" + P + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + H + "))|)" + P + "*\\]", F = ":(" + H + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + R + ")*)|.*)\\)|)", _ = new RegExp(P + "+","g"), z = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$","g"), B = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"), W = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"), U = new RegExp(P + "|>"), X = new RegExp(F), V = new RegExp("^" + H + "$"), Q = {
                    ID: new RegExp("^#(" + H + ")"),
                    CLASS: new RegExp("^\\.(" + H + ")"),
                    TAG: new RegExp("^(" + H + "|[*])"),
                    ATTR: new RegExp("^" + R),
                    PSEUDO: new RegExp("^" + F),
                    CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),
                    bool: new RegExp("^(?:" + M + ")$","i"),
                    needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")
                }, Y = /HTML$/i, G = /^(?:input|select|textarea|button)$/i, J = /^h\d$/i, K = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"), ne = function(e, t) {
                    var n = "0x" + e.slice(1) - 65536;
                    return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
                }, re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ie = function(e, t) {
                    return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
                }, oe = function() {
                    d()
                }, ae = xe((function(e) {
                    return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
                }
                ), {
                    dir: "parentNode",
                    next: "legend"
                });
                try {
                    q.apply(j = $.call(w.childNodes), w.childNodes),
                    j[w.childNodes.length].nodeType
                } catch (e) {
                    q = {
                        apply: j.length ? function(e, t) {
                            O.apply(e, $.call(t))
                        }
                        : function(e, t) {
                            for (var n = e.length, r = 0; e[n++] = t[r++]; )
                                ;
                            e.length = n - 1
                        }
                    }
                }
                function se(e, t, r, i) {
                    var o, s, u, c, f, h, v, y = t && t.ownerDocument, w = t ? t.nodeType : 9;
                    if (r = r || [],
                    "string" != typeof e || !e || 1 !== w && 9 !== w && 11 !== w)
                        return r;
                    if (!i && (d(t),
                    t = t || p,
                    m)) {
                        if (11 !== w && (f = Z.exec(e)))
                            if (o = f[1]) {
                                if (9 === w) {
                                    if (!(u = t.getElementById(o)))
                                        return r;
                                    if (u.id === o)
                                        return r.push(u),
                                        r
                                } else if (y && (u = y.getElementById(o)) && b(t, u) && u.id === o)
                                    return r.push(u),
                                    r
                            } else {
                                if (f[2])
                                    return q.apply(r, t.getElementsByTagName(e)),
                                    r;
                                if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName)
                                    return q.apply(r, t.getElementsByClassName(o)),
                                    r
                            }
                        if (n.qsa && !A[e + " "] && (!g || !g.test(e)) && (1 !== w || "object" !== t.nodeName.toLowerCase())) {
                            if (v = e,
                            y = t,
                            1 === w && (U.test(e) || W.test(e))) {
                                for ((y = ee.test(e) && ve(t.parentNode) || t) === t && n.scope || ((c = t.getAttribute("id")) ? c = c.replace(re, ie) : t.setAttribute("id", c = x)),
                                s = (h = a(e)).length; s--; )
                                    h[s] = (c ? "#" + c : ":scope") + " " + be(h[s]);
                                v = h.join(",")
                            }
                            try {
                                return q.apply(r, y.querySelectorAll(v)),
                                r
                            } catch (t) {
                                A(e, !0)
                            } finally {
                                c === x && t.removeAttribute("id")
                            }
                        }
                    }
                    return l(e.replace(z, "$1"), t, r, i)
                }
                function le() {
                    var e = [];
                    return function t(n, i) {
                        return e.push(n + " ") > r.cacheLength && delete t[e.shift()],
                        t[n + " "] = i
                    }
                }
                function ue(e) {
                    return e[x] = !0,
                    e
                }
                function ce(e) {
                    var t = p.createElement("fieldset");
                    try {
                        return !!e(t)
                    } catch (e) {
                        return !1
                    } finally {
                        t.parentNode && t.parentNode.removeChild(t),
                        t = null
                    }
                }
                function fe(e, t) {
                    for (var n = e.split("|"), i = n.length; i--; )
                        r.attrHandle[n[i]] = t
                }
                function de(e, t) {
                    var n = t && e
                      , r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
                    if (r)
                        return r;
                    if (n)
                        for (; n = n.nextSibling; )
                            if (n === t)
                                return -1;
                    return e ? 1 : -1
                }
                function pe(e) {
                    return function(t) {
                        return "input" === t.nodeName.toLowerCase() && t.type === e
                    }
                }
                function he(e) {
                    return function(t) {
                        var n = t.nodeName.toLowerCase();
                        return ("input" === n || "button" === n) && t.type === e
                    }
                }
                function me(e) {
                    return function(t) {
                        return "form"in t ? t.parentNode && !1 === t.disabled ? "label"in t ? "label"in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && ae(t) === e : t.disabled === e : "label"in t && t.disabled === e
                    }
                }
                function ge(e) {
                    return ue((function(t) {
                        return t = +t,
                        ue((function(n, r) {
                            for (var i, o = e([], n.length, t), a = o.length; a--; )
                                n[i = o[a]] && (n[i] = !(r[i] = n[i]))
                        }
                        ))
                    }
                    ))
                }
                function ve(e) {
                    return e && void 0 !== e.getElementsByTagName && e
                }
                for (t in n = se.support = {},
                o = se.isXML = function(e) {
                    var t = e.namespaceURI
                      , n = (e.ownerDocument || e).documentElement;
                    return !Y.test(t || n && n.nodeName || "HTML")
                }
                ,
                d = se.setDocument = function(e) {
                    var t, i, a = e ? e.ownerDocument || e : w;
                    return a != p && 9 === a.nodeType && a.documentElement ? (h = (p = a).documentElement,
                    m = !o(p),
                    w != p && (i = p.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", oe, !1) : i.attachEvent && i.attachEvent("onunload", oe)),
                    n.scope = ce((function(e) {
                        return h.appendChild(e).appendChild(p.createElement("div")),
                        void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length
                    }
                    )),
                    n.attributes = ce((function(e) {
                        return e.className = "i",
                        !e.getAttribute("className")
                    }
                    )),
                    n.getElementsByTagName = ce((function(e) {
                        return e.appendChild(p.createComment("")),
                        !e.getElementsByTagName("*").length
                    }
                    )),
                    n.getElementsByClassName = K.test(p.getElementsByClassName),
                    n.getById = ce((function(e) {
                        return h.appendChild(e).id = x,
                        !p.getElementsByName || !p.getElementsByName(x).length
                    }
                    )),
                    n.getById ? (r.filter.ID = function(e) {
                        var t = e.replace(te, ne);
                        return function(e) {
                            return e.getAttribute("id") === t
                        }
                    }
                    ,
                    r.find.ID = function(e, t) {
                        if (void 0 !== t.getElementById && m) {
                            var n = t.getElementById(e);
                            return n ? [n] : []
                        }
                    }
                    ) : (r.filter.ID = function(e) {
                        var t = e.replace(te, ne);
                        return function(e) {
                            var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
                            return n && n.value === t
                        }
                    }
                    ,
                    r.find.ID = function(e, t) {
                        if (void 0 !== t.getElementById && m) {
                            var n, r, i, o = t.getElementById(e);
                            if (o) {
                                if ((n = o.getAttributeNode("id")) && n.value === e)
                                    return [o];
                                for (i = t.getElementsByName(e),
                                r = 0; o = i[r++]; )
                                    if ((n = o.getAttributeNode("id")) && n.value === e)
                                        return [o]
                            }
                            return []
                        }
                    }
                    ),
                    r.find.TAG = n.getElementsByTagName ? function(e, t) {
                        return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0
                    }
                    : function(e, t) {
                        var n, r = [], i = 0, o = t.getElementsByTagName(e);
                        if ("*" === e) {
                            for (; n = o[i++]; )
                                1 === n.nodeType && r.push(n);
                            return r
                        }
                        return o
                    }
                    ,
                    r.find.CLASS = n.getElementsByClassName && function(e, t) {
                        if (void 0 !== t.getElementsByClassName && m)
                            return t.getElementsByClassName(e)
                    }
                    ,
                    v = [],
                    g = [],
                    (n.qsa = K.test(p.querySelectorAll)) && (ce((function(e) {
                        var t;
                        h.appendChild(e).innerHTML = "<a id='" + x + "'></a><select id='" + x + "-\r\\' msallowcapture=''><option selected=''></option></select>",
                        e.querySelectorAll("[msallowcapture^='']").length && g.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),
                        e.querySelectorAll("[selected]").length || g.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + M + ")"),
                        e.querySelectorAll("[id~=" + x + "-]").length || g.push("~="),
                        (t = p.createElement("input")).setAttribute("name", ""),
                        e.appendChild(t),
                        e.querySelectorAll("[name='']").length || g.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),
                        e.querySelectorAll(":checked").length || g.push(":checked"),
                        e.querySelectorAll("a#" + x + "+*").length || g.push(".#.+[+~]"),
                        e.querySelectorAll("\\\f"),
                        g.push("[\\r\\n\\f]")
                    }
                    )),
                    ce((function(e) {
                        e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
                        var t = p.createElement("input");
                        t.setAttribute("type", "hidden"),
                        e.appendChild(t).setAttribute("name", "D"),
                        e.querySelectorAll("[name=d]").length && g.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),
                        2 !== e.querySelectorAll(":enabled").length && g.push(":enabled", ":disabled"),
                        h.appendChild(e).disabled = !0,
                        2 !== e.querySelectorAll(":disabled").length && g.push(":enabled", ":disabled"),
                        e.querySelectorAll("*,:x"),
                        g.push(",.*:")
                    }
                    ))),
                    (n.matchesSelector = K.test(y = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ce((function(e) {
                        n.disconnectedMatch = y.call(e, "*"),
                        y.call(e, "[s!='']:x"),
                        v.push("!=", F)
                    }
                    )),
                    g = g.length && new RegExp(g.join("|")),
                    v = v.length && new RegExp(v.join("|")),
                    t = K.test(h.compareDocumentPosition),
                    b = t || K.test(h.contains) ? function(e, t) {
                        var n = 9 === e.nodeType ? e.documentElement : e
                          , r = t && t.parentNode;
                        return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
                    }
                    : function(e, t) {
                        if (t)
                            for (; t = t.parentNode; )
                                if (t === e)
                                    return !0;
                        return !1
                    }
                    ,
                    D = t ? function(e, t) {
                        if (e === t)
                            return f = !0,
                            0;
                        var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
                        return r || (1 & (r = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e == p || e.ownerDocument == w && b(w, e) ? -1 : t == p || t.ownerDocument == w && b(w, t) ? 1 : c ? I(c, e) - I(c, t) : 0 : 4 & r ? -1 : 1)
                    }
                    : function(e, t) {
                        if (e === t)
                            return f = !0,
                            0;
                        var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t];
                        if (!i || !o)
                            return e == p ? -1 : t == p ? 1 : i ? -1 : o ? 1 : c ? I(c, e) - I(c, t) : 0;
                        if (i === o)
                            return de(e, t);
                        for (n = e; n = n.parentNode; )
                            a.unshift(n);
                        for (n = t; n = n.parentNode; )
                            s.unshift(n);
                        for (; a[r] === s[r]; )
                            r++;
                        return r ? de(a[r], s[r]) : a[r] == w ? -1 : s[r] == w ? 1 : 0
                    }
                    ,
                    p) : p
                }
                ,
                se.matches = function(e, t) {
                    return se(e, null, null, t)
                }
                ,
                se.matchesSelector = function(e, t) {
                    if (d(e),
                    n.matchesSelector && m && !A[t + " "] && (!v || !v.test(t)) && (!g || !g.test(t)))
                        try {
                            var r = y.call(e, t);
                            if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType)
                                return r
                        } catch (e) {
                            A(t, !0)
                        }
                    return se(t, p, null, [e]).length > 0
                }
                ,
                se.contains = function(e, t) {
                    return (e.ownerDocument || e) != p && d(e),
                    b(e, t)
                }
                ,
                se.attr = function(e, t) {
                    (e.ownerDocument || e) != p && d(e);
                    var i = r.attrHandle[t.toLowerCase()]
                      , o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !m) : void 0;
                    return void 0 !== o ? o : n.attributes || !m ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null
                }
                ,
                se.escape = function(e) {
                    return (e + "").replace(re, ie)
                }
                ,
                se.error = function(e) {
                    throw new Error("Syntax error, unrecognized expression: " + e)
                }
                ,
                se.uniqueSort = function(e) {
                    var t, r = [], i = 0, o = 0;
                    if (f = !n.detectDuplicates,
                    c = !n.sortStable && e.slice(0),
                    e.sort(D),
                    f) {
                        for (; t = e[o++]; )
                            t === e[o] && (i = r.push(o));
                        for (; i--; )
                            e.splice(r[i], 1)
                    }
                    return c = null,
                    e
                }
                ,
                i = se.getText = function(e) {
                    var t, n = "", r = 0, o = e.nodeType;
                    if (o) {
                        if (1 === o || 9 === o || 11 === o) {
                            if ("string" == typeof e.textContent)
                                return e.textContent;
                            for (e = e.firstChild; e; e = e.nextSibling)
                                n += i(e)
                        } else if (3 === o || 4 === o)
                            return e.nodeValue
                    } else
                        for (; t = e[r++]; )
                            n += i(t);
                    return n
                }
                ,
                (r = se.selectors = {
                    cacheLength: 50,
                    createPseudo: ue,
                    match: Q,
                    attrHandle: {},
                    find: {},
                    relative: {
                        ">": {
                            dir: "parentNode",
                            first: !0
                        },
                        " ": {
                            dir: "parentNode"
                        },
                        "+": {
                            dir: "previousSibling",
                            first: !0
                        },
                        "~": {
                            dir: "previousSibling"
                        }
                    },
                    preFilter: {
                        ATTR: function(e) {
                            return e[1] = e[1].replace(te, ne),
                            e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne),
                            "~=" === e[2] && (e[3] = " " + e[3] + " "),
                            e.slice(0, 4)
                        },
                        CHILD: function(e) {
                            return e[1] = e[1].toLowerCase(),
                            "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]),
                            e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])),
                            e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]),
                            e
                        },
                        PSEUDO: function(e) {
                            var t, n = !e[6] && e[2];
                            return Q.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t),
                            e[2] = n.slice(0, t)),
                            e.slice(0, 3))
                        }
                    },
                    filter: {
                        TAG: function(e) {
                            var t = e.replace(te, ne).toLowerCase();
                            return "*" === e ? function() {
                                return !0
                            }
                            : function(e) {
                                return e.nodeName && e.nodeName.toLowerCase() === t
                            }
                        },
                        CLASS: function(e) {
                            var t = C[e + " "];
                            return t || (t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + P + "|$)")) && C(e, (function(e) {
                                return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")
                            }
                            ))
                        },
                        ATTR: function(e, t, n) {
                            return function(r) {
                                var i = se.attr(r, e);
                                return null == i ? "!=" === t : !t || (i += "",
                                "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace(_, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-"))
                            }
                        },
                        CHILD: function(e, t, n, r, i) {
                            var o = "nth" !== e.slice(0, 3)
                              , a = "last" !== e.slice(-4)
                              , s = "of-type" === t;
                            return 1 === r && 0 === i ? function(e) {
                                return !!e.parentNode
                            }
                            : function(t, n, l) {
                                var u, c, f, d, p, h, m = o !== a ? "nextSibling" : "previousSibling", g = t.parentNode, v = s && t.nodeName.toLowerCase(), y = !l && !s, b = !1;
                                if (g) {
                                    if (o) {
                                        for (; m; ) {
                                            for (d = t; d = d[m]; )
                                                if (s ? d.nodeName.toLowerCase() === v : 1 === d.nodeType)
                                                    return !1;
                                            h = m = "only" === e && !h && "nextSibling"
                                        }
                                        return !0
                                    }
                                    if (h = [a ? g.firstChild : g.lastChild],
                                    a && y) {
                                        for (b = (p = (u = (c = (f = (d = g)[x] || (d[x] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] || [])[0] === T && u[1]) && u[2],
                                        d = p && g.childNodes[p]; d = ++p && d && d[m] || (b = p = 0) || h.pop(); )
                                            if (1 === d.nodeType && ++b && d === t) {
                                                c[e] = [T, p, b];
                                                break
                                            }
                                    } else if (y && (b = p = (u = (c = (f = (d = t)[x] || (d[x] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] || [])[0] === T && u[1]),
                                    !1 === b)
                                        for (; (d = ++p && d && d[m] || (b = p = 0) || h.pop()) && ((s ? d.nodeName.toLowerCase() !== v : 1 !== d.nodeType) || !++b || (y && ((c = (f = d[x] || (d[x] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] = [T, b]),
                                        d !== t)); )
                                            ;
                                    return (b -= i) === r || b % r == 0 && b / r >= 0
                                }
                            }
                        },
                        PSEUDO: function(e, t) {
                            var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e);
                            return i[x] ? i(t) : i.length > 1 ? (n = [e, e, "", t],
                            r.setFilters.hasOwnProperty(e.toLowerCase()) ? ue((function(e, n) {
                                for (var r, o = i(e, t), a = o.length; a--; )
                                    e[r = I(e, o[a])] = !(n[r] = o[a])
                            }
                            )) : function(e) {
                                return i(e, 0, n)
                            }
                            ) : i
                        }
                    },
                    pseudos: {
                        not: ue((function(e) {
                            var t = []
                              , n = []
                              , r = s(e.replace(z, "$1"));
                            return r[x] ? ue((function(e, t, n, i) {
                                for (var o, a = r(e, null, i, []), s = e.length; s--; )
                                    (o = a[s]) && (e[s] = !(t[s] = o))
                            }
                            )) : function(e, i, o) {
                                return t[0] = e,
                                r(t, null, o, n),
                                t[0] = null,
                                !n.pop()
                            }
                        }
                        )),
                        has: ue((function(e) {
                            return function(t) {
                                return se(e, t).length > 0
                            }
                        }
                        )),
                        contains: ue((function(e) {
                            return e = e.replace(te, ne),
                            function(t) {
                                return (t.textContent || i(t)).indexOf(e) > -1
                            }
                        }
                        )),
                        lang: ue((function(e) {
                            return V.test(e || "") || se.error("unsupported lang: " + e),
                            e = e.replace(te, ne).toLowerCase(),
                            function(t) {
                                var n;
                                do {
                                    if (n = m ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))
                                        return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-")
                                } while ((t = t.parentNode) && 1 === t.nodeType);
                                return !1
                            }
                        }
                        )),
                        target: function(t) {
                            var n = e.location && e.location.hash;
                            return n && n.slice(1) === t.id
                        },
                        root: function(e) {
                            return e === h
                        },
                        focus: function(e) {
                            return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
                        },
                        enabled: me(!1),
                        disabled: me(!0),
                        checked: function(e) {
                            var t = e.nodeName.toLowerCase();
                            return "input" === t && !!e.checked || "option" === t && !!e.selected
                        },
                        selected: function(e) {
                            return e.parentNode && e.parentNode.selectedIndex,
                            !0 === e.selected
                        },
                        empty: function(e) {
                            for (e = e.firstChild; e; e = e.nextSibling)
                                if (e.nodeType < 6)
                                    return !1;
                            return !0
                        },
                        parent: function(e) {
                            return !r.pseudos.empty(e)
                        },
                        header: function(e) {
                            return J.test(e.nodeName)
                        },
                        input: function(e) {
                            return G.test(e.nodeName)
                        },
                        button: function(e) {
                            var t = e.nodeName.toLowerCase();
                            return "input" === t && "button" === e.type || "button" === t
                        },
                        text: function(e) {
                            var t;
                            return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                        },
                        first: ge((function() {
                            return [0]
                        }
                        )),
                        last: ge((function(e, t) {
                            return [t - 1]
                        }
                        )),
                        eq: ge((function(e, t, n) {
                            return [n < 0 ? n + t : n]
                        }
                        )),
                        even: ge((function(e, t) {
                            for (var n = 0; n < t; n += 2)
                                e.push(n);
                            return e
                        }
                        )),
                        odd: ge((function(e, t) {
                            for (var n = 1; n < t; n += 2)
                                e.push(n);
                            return e
                        }
                        )),
                        lt: ge((function(e, t, n) {
                            for (var r = n < 0 ? n + t : n > t ? t : n; --r >= 0; )
                                e.push(r);
                            return e
                        }
                        )),
                        gt: ge((function(e, t, n) {
                            for (var r = n < 0 ? n + t : n; ++r < t; )
                                e.push(r);
                            return e
                        }
                        ))
                    }
                }).pseudos.nth = r.pseudos.eq,
                {
                    radio: !0,
                    checkbox: !0,
                    file: !0,
                    password: !0,
                    image: !0
                })
                    r.pseudos[t] = pe(t);
                for (t in {
                    submit: !0,
                    reset: !0
                })
                    r.pseudos[t] = he(t);
                function ye() {}
                function be(e) {
                    for (var t = 0, n = e.length, r = ""; t < n; t++)
                        r += e[t].value;
                    return r
                }
                function xe(e, t, n) {
                    var r = t.dir
                      , i = t.next
                      , o = i || r
                      , a = n && "parentNode" === o
                      , s = k++;
                    return t.first ? function(t, n, i) {
                        for (; t = t[r]; )
                            if (1 === t.nodeType || a)
                                return e(t, n, i);
                        return !1
                    }
                    : function(t, n, l) {
                        var u, c, f, d = [T, s];
                        if (l) {
                            for (; t = t[r]; )
                                if ((1 === t.nodeType || a) && e(t, n, l))
                                    return !0
                        } else
                            for (; t = t[r]; )
                                if (1 === t.nodeType || a)
                                    if (c = (f = t[x] || (t[x] = {}))[t.uniqueID] || (f[t.uniqueID] = {}),
                                    i && i === t.nodeName.toLowerCase())
                                        t = t[r] || t;
                                    else {
                                        if ((u = c[o]) && u[0] === T && u[1] === s)
                                            return d[2] = u[2];
                                        if (c[o] = d,
                                        d[2] = e(t, n, l))
                                            return !0
                                    }
                        return !1
                    }
                }
                function we(e) {
                    return e.length > 1 ? function(t, n, r) {
                        for (var i = e.length; i--; )
                            if (!e[i](t, n, r))
                                return !1;
                        return !0
                    }
                    : e[0]
                }
                function Te(e, t, n, r, i) {
                    for (var o, a = [], s = 0, l = e.length, u = null != t; s < l; s++)
                        (o = e[s]) && (n && !n(o, r, i) || (a.push(o),
                        u && t.push(s)));
                    return a
                }
                function ke(e, t, n, r, i, o) {
                    return r && !r[x] && (r = ke(r)),
                    i && !i[x] && (i = ke(i, o)),
                    ue((function(o, a, s, l) {
                        var u, c, f, d = [], p = [], h = a.length, m = o || function(e, t, n) {
                            for (var r = 0, i = t.length; r < i; r++)
                                se(e, t[r], n);
                            return n
                        }(t || "*", s.nodeType ? [s] : s, []), g = !e || !o && t ? m : Te(m, d, e, s, l), v = n ? i || (o ? e : h || r) ? [] : a : g;
                        if (n && n(g, v, s, l),
                        r)
                            for (u = Te(v, p),
                            r(u, [], s, l),
                            c = u.length; c--; )
                                (f = u[c]) && (v[p[c]] = !(g[p[c]] = f));
                        if (o) {
                            if (i || e) {
                                if (i) {
                                    for (u = [],
                                    c = v.length; c--; )
                                        (f = v[c]) && u.push(g[c] = f);
                                    i(null, v = [], u, l)
                                }
                                for (c = v.length; c--; )
                                    (f = v[c]) && (u = i ? I(o, f) : d[c]) > -1 && (o[u] = !(a[u] = f))
                            }
                        } else
                            v = Te(v === a ? v.splice(h, v.length) : v),
                            i ? i(null, a, v, l) : q.apply(a, v)
                    }
                    ))
                }
                function Ce(e) {
                    for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], l = a ? 1 : 0, c = xe((function(e) {
                        return e === t
                    }
                    ), s, !0), f = xe((function(e) {
                        return I(t, e) > -1
                    }
                    ), s, !0), d = [function(e, n, r) {
                        var i = !a && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r));
                        return t = null,
                        i
                    }
                    ]; l < o; l++)
                        if (n = r.relative[e[l].type])
                            d = [xe(we(d), n)];
                        else {
                            if ((n = r.filter[e[l].type].apply(null, e[l].matches))[x]) {
                                for (i = ++l; i < o && !r.relative[e[i].type]; i++)
                                    ;
                                return ke(l > 1 && we(d), l > 1 && be(e.slice(0, l - 1).concat({
                                    value: " " === e[l - 2].type ? "*" : ""
                                })).replace(z, "$1"), n, l < i && Ce(e.slice(l, i)), i < o && Ce(e = e.slice(i)), i < o && be(e))
                            }
                            d.push(n)
                        }
                    return we(d)
                }
                return ye.prototype = r.filters = r.pseudos,
                r.setFilters = new ye,
                a = se.tokenize = function(e, t) {
                    var n, i, o, a, s, l, u, c = E[e + " "];
                    if (c)
                        return t ? 0 : c.slice(0);
                    for (s = e,
                    l = [],
                    u = r.preFilter; s; ) {
                        for (a in n && !(i = B.exec(s)) || (i && (s = s.slice(i[0].length) || s),
                        l.push(o = [])),
                        n = !1,
                        (i = W.exec(s)) && (n = i.shift(),
                        o.push({
                            value: n,
                            type: i[0].replace(z, " ")
                        }),
                        s = s.slice(n.length)),
                        r.filter)
                            !(i = Q[a].exec(s)) || u[a] && !(i = u[a](i)) || (n = i.shift(),
                            o.push({
                                value: n,
                                type: a,
                                matches: i
                            }),
                            s = s.slice(n.length));
                        if (!n)
                            break
                    }
                    return t ? s.length : s ? se.error(e) : E(e, l).slice(0)
                }
                ,
                s = se.compile = function(e, t) {
                    var n, i = [], o = [], s = S[e + " "];
                    if (!s) {
                        for (t || (t = a(e)),
                        n = t.length; n--; )
                            (s = Ce(t[n]))[x] ? i.push(s) : o.push(s);
                        (s = S(e, function(e, t) {
                            var n = t.length > 0
                              , i = e.length > 0
                              , o = function(o, a, s, l, c) {
                                var f, h, g, v = 0, y = "0", b = o && [], x = [], w = u, k = o || i && r.find.TAG("*", c), C = T += null == w ? 1 : Math.random() || .1, E = k.length;
                                for (c && (u = a == p || a || c); y !== E && null != (f = k[y]); y++) {
                                    if (i && f) {
                                        for (h = 0,
                                        a || f.ownerDocument == p || (d(f),
                                        s = !m); g = e[h++]; )
                                            if (g(f, a || p, s)) {
                                                l.push(f);
                                                break
                                            }
                                        c && (T = C)
                                    }
                                    n && ((f = !g && f) && v--,
                                    o && b.push(f))
                                }
                                if (v += y,
                                n && y !== v) {
                                    for (h = 0; g = t[h++]; )
                                        g(b, x, a, s);
                                    if (o) {
                                        if (v > 0)
                                            for (; y--; )
                                                b[y] || x[y] || (x[y] = L.call(l));
                                        x = Te(x)
                                    }
                                    q.apply(l, x),
                                    c && !o && x.length > 0 && v + t.length > 1 && se.uniqueSort(l)
                                }
                                return c && (T = C,
                                u = w),
                                b
                            };
                            return n ? ue(o) : o
                        }(o, i))).selector = e
                    }
                    return s
                }
                ,
                l = se.select = function(e, t, n, i) {
                    var o, l, u, c, f, d = "function" == typeof e && e, p = !i && a(e = d.selector || e);
                    if (n = n || [],
                    1 === p.length) {
                        if ((l = p[0] = p[0].slice(0)).length > 2 && "ID" === (u = l[0]).type && 9 === t.nodeType && m && r.relative[l[1].type]) {
                            if (!(t = (r.find.ID(u.matches[0].replace(te, ne), t) || [])[0]))
                                return n;
                            d && (t = t.parentNode),
                            e = e.slice(l.shift().value.length)
                        }
                        for (o = Q.needsContext.test(e) ? 0 : l.length; o-- && (u = l[o],
                        !r.relative[c = u.type]); )
                            if ((f = r.find[c]) && (i = f(u.matches[0].replace(te, ne), ee.test(l[0].type) && ve(t.parentNode) || t))) {
                                if (l.splice(o, 1),
                                !(e = i.length && be(l)))
                                    return q.apply(n, i),
                                    n;
                                break
                            }
                    }
                    return (d || s(e, p))(i, t, !m, n, !t || ee.test(e) && ve(t.parentNode) || t),
                    n
                }
                ,
                n.sortStable = x.split("").sort(D).join("") === x,
                n.detectDuplicates = !!f,
                d(),
                n.sortDetached = ce((function(e) {
                    return 1 & e.compareDocumentPosition(p.createElement("fieldset"))
                }
                )),
                ce((function(e) {
                    return e.innerHTML = "<a href='#'></a>",
                    "#" === e.firstChild.getAttribute("href")
                }
                )) || fe("type|href|height|width", (function(e, t, n) {
                    if (!n)
                        return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
                }
                )),
                n.attributes && ce((function(e) {
                    return e.innerHTML = "<input/>",
                    e.firstChild.setAttribute("value", ""),
                    "" === e.firstChild.getAttribute("value")
                }
                )) || fe("value", (function(e, t, n) {
                    if (!n && "input" === e.nodeName.toLowerCase())
                        return e.defaultValue
                }
                )),
                ce((function(e) {
                    return null == e.getAttribute("disabled")
                }
                )) || fe(M, (function(e, t, n) {
                    var r;
                    if (!n)
                        return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
                }
                )),
                se
            }(r);
            C.find = S,
            C.expr = S.selectors,
            C.expr[":"] = C.expr.pseudos,
            C.uniqueSort = C.unique = S.uniqueSort,
            C.text = S.getText,
            C.isXMLDoc = S.isXML,
            C.contains = S.contains,
            C.escapeSelector = S.escape;
            var A = function(e, t, n) {
                for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )
                    if (1 === e.nodeType) {
                        if (i && C(e).is(n))
                            break;
                        r.push(e)
                    }
                return r
            }
              , D = function(e, t) {
                for (var n = []; e; e = e.nextSibling)
                    1 === e.nodeType && e !== t && n.push(e);
                return n
            }
              , N = C.expr.match.needsContext;
            function j(e, t) {
                return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
            }
            var L = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
            function O(e, t, n) {
                return v(t) ? C.grep(e, (function(e, r) {
                    return !!t.call(e, r, e) !== n
                }
                )) : t.nodeType ? C.grep(e, (function(e) {
                    return e === t !== n
                }
                )) : "string" != typeof t ? C.grep(e, (function(e) {
                    return c.call(t, e) > -1 !== n
                }
                )) : C.filter(t, e, n)
            }
            C.filter = function(e, t, n) {
                var r = t[0];
                return n && (e = ":not(" + e + ")"),
                1 === t.length && 1 === r.nodeType ? C.find.matchesSelector(r, e) ? [r] : [] : C.find.matches(e, C.grep(t, (function(e) {
                    return 1 === e.nodeType
                }
                )))
            }
            ,
            C.fn.extend({
                find: function(e) {
                    var t, n, r = this.length, i = this;
                    if ("string" != typeof e)
                        return this.pushStack(C(e).filter((function() {
                            for (t = 0; t < r; t++)
                                if (C.contains(i[t], this))
                                    return !0
                        }
                        )));
                    for (n = this.pushStack([]),
                    t = 0; t < r; t++)
                        C.find(e, i[t], n);
                    return r > 1 ? C.uniqueSort(n) : n
                },
                filter: function(e) {
                    return this.pushStack(O(this, e || [], !1))
                },
                not: function(e) {
                    return this.pushStack(O(this, e || [], !0))
                },
                is: function(e) {
                    return !!O(this, "string" == typeof e && N.test(e) ? C(e) : e || [], !1).length
                }
            });
            var q, $ = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
            (C.fn.init = function(e, t, n) {
                var r, i;
                if (!e)
                    return this;
                if (n = n || q,
                "string" == typeof e) {
                    if (!(r = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : $.exec(e)) || !r[1] && t)
                        return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
                    if (r[1]) {
                        if (t = t instanceof C ? t[0] : t,
                        C.merge(this, C.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : b, !0)),
                        L.test(r[1]) && C.isPlainObject(t))
                            for (r in t)
                                v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
                        return this
                    }
                    return (i = b.getElementById(r[2])) && (this[0] = i,
                    this.length = 1),
                    this
                }
                return e.nodeType ? (this[0] = e,
                this.length = 1,
                this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(C) : C.makeArray(e, this)
            }
            ).prototype = C.fn,
            q = C(b);
            var I = /^(?:parents|prev(?:Until|All))/
              , M = {
                children: !0,
                contents: !0,
                next: !0,
                prev: !0
            };
            function P(e, t) {
                for (; (e = e[t]) && 1 !== e.nodeType; )
                    ;
                return e
            }
            C.fn.extend({
                has: function(e) {
                    var t = C(e, this)
                      , n = t.length;
                    return this.filter((function() {
                        for (var e = 0; e < n; e++)
                            if (C.contains(this, t[e]))
                                return !0
                    }
                    ))
                },
                closest: function(e, t) {
                    var n, r = 0, i = this.length, o = [], a = "string" != typeof e && C(e);
                    if (!N.test(e))
                        for (; r < i; r++)
                            for (n = this[r]; n && n !== t; n = n.parentNode)
                                if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && C.find.matchesSelector(n, e))) {
                                    o.push(n);
                                    break
                                }
                    return this.pushStack(o.length > 1 ? C.uniqueSort(o) : o)
                },
                index: function(e) {
                    return e ? "string" == typeof e ? c.call(C(e), this[0]) : c.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
                },
                add: function(e, t) {
                    return this.pushStack(C.uniqueSort(C.merge(this.get(), C(e, t))))
                },
                addBack: function(e) {
                    return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
                }
            }),
            C.each({
                parent: function(e) {
                    var t = e.parentNode;
                    return t && 11 !== t.nodeType ? t : null
                },
                parents: function(e) {
                    return A(e, "parentNode")
                },
                parentsUntil: function(e, t, n) {
                    return A(e, "parentNode", n)
                },
                next: function(e) {
                    return P(e, "nextSibling")
                },
                prev: function(e) {
                    return P(e, "previousSibling")
                },
                nextAll: function(e) {
                    return A(e, "nextSibling")
                },
                prevAll: function(e) {
                    return A(e, "previousSibling")
                },
                nextUntil: function(e, t, n) {
                    return A(e, "nextSibling", n)
                },
                prevUntil: function(e, t, n) {
                    return A(e, "previousSibling", n)
                },
                siblings: function(e) {
                    return D((e.parentNode || {}).firstChild, e)
                },
                children: function(e) {
                    return D(e.firstChild)
                },
                contents: function(e) {
                    return null != e.contentDocument && a(e.contentDocument) ? e.contentDocument : (j(e, "template") && (e = e.content || e),
                    C.merge([], e.childNodes))
                }
            }, (function(e, t) {
                C.fn[e] = function(n, r) {
                    var i = C.map(this, t, n);
                    return "Until" !== e.slice(-5) && (r = n),
                    r && "string" == typeof r && (i = C.filter(r, i)),
                    this.length > 1 && (M[e] || C.uniqueSort(i),
                    I.test(e) && i.reverse()),
                    this.pushStack(i)
                }
            }
            ));
            var H = /[^\x20\t\r\n\f]+/g;
            function R(e) {
                return e
            }
            function F(e) {
                throw e
            }
            function _(e, t, n, r) {
                var i;
                try {
                    e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
                } catch (e) {
                    n.apply(void 0, [e])
                }
            }
            C.Callbacks = function(e) {
                e = "string" == typeof e ? function(e) {
                    var t = {};
                    return C.each(e.match(H) || [], (function(e, n) {
                        t[n] = !0
                    }
                    )),
                    t
                }(e) : C.extend({}, e);
                var t, n, r, i, o = [], a = [], s = -1, l = function() {
                    for (i = i || e.once,
                    r = t = !0; a.length; s = -1)
                        for (n = a.shift(); ++s < o.length; )
                            !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && (s = o.length,
                            n = !1);
                    e.memory || (n = !1),
                    t = !1,
                    i && (o = n ? [] : "")
                }, u = {
                    add: function() {
                        return o && (n && !t && (s = o.length - 1,
                        a.push(n)),
                        function t(n) {
                            C.each(n, (function(n, r) {
                                v(r) ? e.unique && u.has(r) || o.push(r) : r && r.length && "string" !== T(r) && t(r)
                            }
                            ))
                        }(arguments),
                        n && !t && l()),
                        this
                    },
                    remove: function() {
                        return C.each(arguments, (function(e, t) {
                            for (var n; (n = C.inArray(t, o, n)) > -1; )
                                o.splice(n, 1),
                                n <= s && s--
                        }
                        )),
                        this
                    },
                    has: function(e) {
                        return e ? C.inArray(e, o) > -1 : o.length > 0
                    },
                    empty: function() {
                        return o && (o = []),
                        this
                    },
                    disable: function() {
                        return i = a = [],
                        o = n = "",
                        this
                    },
                    disabled: function() {
                        return !o
                    },
                    lock: function() {
                        return i = a = [],
                        n || t || (o = n = ""),
                        this
                    },
                    locked: function() {
                        return !!i
                    },
                    fireWith: function(e, n) {
                        return i || (n = [e, (n = n || []).slice ? n.slice() : n],
                        a.push(n),
                        t || l()),
                        this
                    },
                    fire: function() {
                        return u.fireWith(this, arguments),
                        this
                    },
                    fired: function() {
                        return !!r
                    }
                };
                return u
            }
            ,
            C.extend({
                Deferred: function(e) {
                    var t = [["notify", "progress", C.Callbacks("memory"), C.Callbacks("memory"), 2], ["resolve", "done", C.Callbacks("once memory"), C.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", C.Callbacks("once memory"), C.Callbacks("once memory"), 1, "rejected"]]
                      , n = "pending"
                      , i = {
                        state: function() {
                            return n
                        },
                        always: function() {
                            return o.done(arguments).fail(arguments),
                            this
                        },
                        catch: function(e) {
                            return i.then(null, e)
                        },
                        pipe: function() {
                            var e = arguments;
                            return C.Deferred((function(n) {
                                C.each(t, (function(t, r) {
                                    var i = v(e[r[4]]) && e[r[4]];
                                    o[r[1]]((function() {
                                        var e = i && i.apply(this, arguments);
                                        e && v(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[r[0] + "With"](this, i ? [e] : arguments)
                                    }
                                    ))
                                }
                                )),
                                e = null
                            }
                            )).promise()
                        },
                        then: function(e, n, i) {
                            var o = 0;
                            function a(e, t, n, i) {
                                return function() {
                                    var s = this
                                      , l = arguments
                                      , u = function() {
                                        var r, u;
                                        if (!(e < o)) {
                                            if ((r = n.apply(s, l)) === t.promise())
                                                throw new TypeError("Thenable self-resolution");
                                            u = r && ("object" == typeof r || "function" == typeof r) && r.then,
                                            v(u) ? i ? u.call(r, a(o, t, R, i), a(o, t, F, i)) : (o++,
                                            u.call(r, a(o, t, R, i), a(o, t, F, i), a(o, t, R, t.notifyWith))) : (n !== R && (s = void 0,
                                            l = [r]),
                                            (i || t.resolveWith)(s, l))
                                        }
                                    }
                                      , c = i ? u : function() {
                                        try {
                                            u()
                                        } catch (r) {
                                            C.Deferred.exceptionHook && C.Deferred.exceptionHook(r, c.stackTrace),
                                            e + 1 >= o && (n !== F && (s = void 0,
                                            l = [r]),
                                            t.rejectWith(s, l))
                                        }
                                    }
                                    ;
                                    e ? c() : (C.Deferred.getStackHook && (c.stackTrace = C.Deferred.getStackHook()),
                                    r.setTimeout(c))
                                }
                            }
                            return C.Deferred((function(r) {
                                t[0][3].add(a(0, r, v(i) ? i : R, r.notifyWith)),
                                t[1][3].add(a(0, r, v(e) ? e : R)),
                                t[2][3].add(a(0, r, v(n) ? n : F))
                            }
                            )).promise()
                        },
                        promise: function(e) {
                            return null != e ? C.extend(e, i) : i
                        }
                    }
                      , o = {};
                    return C.each(t, (function(e, r) {
                        var a = r[2]
                          , s = r[5];
                        i[r[1]] = a.add,
                        s && a.add((function() {
                            n = s
                        }
                        ), t[3 - e][2].disable, t[3 - e][3].disable, t[0][2].lock, t[0][3].lock),
                        a.add(r[3].fire),
                        o[r[0]] = function() {
                            return o[r[0] + "With"](this === o ? void 0 : this, arguments),
                            this
                        }
                        ,
                        o[r[0] + "With"] = a.fireWith
                    }
                    )),
                    i.promise(o),
                    e && e.call(o, o),
                    o
                },
                when: function(e) {
                    var t = arguments.length
                      , n = t
                      , r = Array(n)
                      , i = s.call(arguments)
                      , o = C.Deferred()
                      , a = function(e) {
                        return function(n) {
                            r[e] = this,
                            i[e] = arguments.length > 1 ? s.call(arguments) : n,
                            --t || o.resolveWith(r, i)
                        }
                    };
                    if (t <= 1 && (_(e, o.done(a(n)).resolve, o.reject, !t),
                    "pending" === o.state() || v(i[n] && i[n].then)))
                        return o.then();
                    for (; n--; )
                        _(i[n], a(n), o.reject);
                    return o.promise()
                }
            });
            var z = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
            C.Deferred.exceptionHook = function(e, t) {
                r.console && r.console.warn && e && z.test(e.name) && r.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
            }
            ,
            C.readyException = function(e) {
                r.setTimeout((function() {
                    throw e
                }
                ))
            }
            ;
            var B = C.Deferred();
            function W() {
                b.removeEventListener("DOMContentLoaded", W),
                r.removeEventListener("load", W),
                C.ready()
            }
            C.fn.ready = function(e) {
                return B.then(e).catch((function(e) {
                    C.readyException(e)
                }
                )),
                this
            }
            ,
            C.extend({
                isReady: !1,
                readyWait: 1,
                ready: function(e) {
                    (!0 === e ? --C.readyWait : C.isReady) || (C.isReady = !0,
                    !0 !== e && --C.readyWait > 0 || B.resolveWith(b, [C]))
                }
            }),
            C.ready.then = B.then,
            "complete" === b.readyState || "loading" !== b.readyState && !b.documentElement.doScroll ? r.setTimeout(C.ready) : (b.addEventListener("DOMContentLoaded", W),
            r.addEventListener("load", W));
            var U = function(e, t, n, r, i, o, a) {
                var s = 0
                  , l = e.length
                  , u = null == n;
                if ("object" === T(n))
                    for (s in i = !0,
                    n)
                        U(e, t, s, n[s], !0, o, a);
                else if (void 0 !== r && (i = !0,
                v(r) || (a = !0),
                u && (a ? (t.call(e, r),
                t = null) : (u = t,
                t = function(e, t, n) {
                    return u.call(C(e), n)
                }
                )),
                t))
                    for (; s < l; s++)
                        t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
                return i ? e : u ? t.call(e) : l ? t(e[0], n) : o
            }
              , X = /^-ms-/
              , V = /-([a-z])/g;
            function Q(e, t) {
                return t.toUpperCase()
            }
            function Y(e) {
                return e.replace(X, "ms-").replace(V, Q)
            }
            var G = function(e) {
                return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
            };
            function J() {
                this.expando = C.expando + J.uid++
            }
            J.uid = 1,
            J.prototype = {
                cache: function(e) {
                    var t = e[this.expando];
                    return t || (t = {},
                    G(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
                        value: t,
                        configurable: !0
                    }))),
                    t
                },
                set: function(e, t, n) {
                    var r, i = this.cache(e);
                    if ("string" == typeof t)
                        i[Y(t)] = n;
                    else
                        for (r in t)
                            i[Y(r)] = t[r];
                    return i
                },
                get: function(e, t) {
                    return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][Y(t)]
                },
                access: function(e, t, n) {
                    return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n),
                    void 0 !== n ? n : t)
                },
                remove: function(e, t) {
                    var n, r = e[this.expando];
                    if (void 0 !== r) {
                        if (void 0 !== t) {
                            n = (t = Array.isArray(t) ? t.map(Y) : (t = Y(t))in r ? [t] : t.match(H) || []).length;
                            for (; n--; )
                                delete r[t[n]]
                        }
                        (void 0 === t || C.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
                    }
                },
                hasData: function(e) {
                    var t = e[this.expando];
                    return void 0 !== t && !C.isEmptyObject(t)
                }
            };
            var K = new J
              , Z = new J
              , ee = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
              , te = /[A-Z]/g;
            function ne(e, t, n) {
                var r;
                if (void 0 === n && 1 === e.nodeType)
                    if (r = "data-" + t.replace(te, "-$&").toLowerCase(),
                    "string" == typeof (n = e.getAttribute(r))) {
                        try {
                            n = function(e) {
                                return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : ee.test(e) ? JSON.parse(e) : e)
                            }(n)
                        } catch (e) {}
                        Z.set(e, t, n)
                    } else
                        n = void 0;
                return n
            }
            C.extend({
                hasData: function(e) {
                    return Z.hasData(e) || K.hasData(e)
                },
                data: function(e, t, n) {
                    return Z.access(e, t, n)
                },
                removeData: function(e, t) {
                    Z.remove(e, t)
                },
                _data: function(e, t, n) {
                    return K.access(e, t, n)
                },
                _removeData: function(e, t) {
                    K.remove(e, t)
                }
            }),
            C.fn.extend({
                data: function(e, t) {
                    var n, r, i, o = this[0], a = o && o.attributes;
                    if (void 0 === e) {
                        if (this.length && (i = Z.get(o),
                        1 === o.nodeType && !K.get(o, "hasDataAttrs"))) {
                            for (n = a.length; n--; )
                                a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = Y(r.slice(5)),
                                ne(o, r, i[r]));
                            K.set(o, "hasDataAttrs", !0)
                        }
                        return i
                    }
                    return "object" == typeof e ? this.each((function() {
                        Z.set(this, e)
                    }
                    )) : U(this, (function(t) {
                        var n;
                        if (o && void 0 === t)
                            return void 0 !== (n = Z.get(o, e)) || void 0 !== (n = ne(o, e)) ? n : void 0;
                        this.each((function() {
                            Z.set(this, e, t)
                        }
                        ))
                    }
                    ), null, t, arguments.length > 1, null, !0)
                },
                removeData: function(e) {
                    return this.each((function() {
                        Z.remove(this, e)
                    }
                    ))
                }
            }),
            C.extend({
                queue: function(e, t, n) {
                    var r;
                    if (e)
                        return t = (t || "fx") + "queue",
                        r = K.get(e, t),
                        n && (!r || Array.isArray(n) ? r = K.access(e, t, C.makeArray(n)) : r.push(n)),
                        r || []
                },
                dequeue: function(e, t) {
                    t = t || "fx";
                    var n = C.queue(e, t)
                      , r = n.length
                      , i = n.shift()
                      , o = C._queueHooks(e, t);
                    "inprogress" === i && (i = n.shift(),
                    r--),
                    i && ("fx" === t && n.unshift("inprogress"),
                    delete o.stop,
                    i.call(e, (function() {
                        C.dequeue(e, t)
                    }
                    ), o)),
                    !r && o && o.empty.fire()
                },
                _queueHooks: function(e, t) {
                    var n = t + "queueHooks";
                    return K.get(e, n) || K.access(e, n, {
                        empty: C.Callbacks("once memory").add((function() {
                            K.remove(e, [t + "queue", n])
                        }
                        ))
                    })
                }
            }),
            C.fn.extend({
                queue: function(e, t) {
                    var n = 2;
                    return "string" != typeof e && (t = e,
                    e = "fx",
                    n--),
                    arguments.length < n ? C.queue(this[0], e) : void 0 === t ? this : this.each((function() {
                        var n = C.queue(this, e, t);
                        C._queueHooks(this, e),
                        "fx" === e && "inprogress" !== n[0] && C.dequeue(this, e)
                    }
                    ))
                },
                dequeue: function(e) {
                    return this.each((function() {
                        C.dequeue(this, e)
                    }
                    ))
                },
                clearQueue: function(e) {
                    return this.queue(e || "fx", [])
                },
                promise: function(e, t) {
                    var n, r = 1, i = C.Deferred(), o = this, a = this.length, s = function() {
                        --r || i.resolveWith(o, [o])
                    };
                    for ("string" != typeof e && (t = e,
                    e = void 0),
                    e = e || "fx"; a--; )
                        (n = K.get(o[a], e + "queueHooks")) && n.empty && (r++,
                        n.empty.add(s));
                    return s(),
                    i.promise(t)
                }
            });
            var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
              , ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$","i")
              , oe = ["Top", "Right", "Bottom", "Left"]
              , ae = b.documentElement
              , se = function(e) {
                return C.contains(e.ownerDocument, e)
            }
              , le = {
                composed: !0
            };
            ae.getRootNode && (se = function(e) {
                return C.contains(e.ownerDocument, e) || e.getRootNode(le) === e.ownerDocument
            }
            );
            var ue = function(e, t) {
                return "none" === (e = t || e).style.display || "" === e.style.display && se(e) && "none" === C.css(e, "display")
            };
            function ce(e, t, n, r) {
                var i, o, a = 20, s = r ? function() {
                    return r.cur()
                }
                : function() {
                    return C.css(e, t, "")
                }
                , l = s(), u = n && n[3] || (C.cssNumber[t] ? "" : "px"), c = e.nodeType && (C.cssNumber[t] || "px" !== u && +l) && ie.exec(C.css(e, t));
                if (c && c[3] !== u) {
                    for (l /= 2,
                    u = u || c[3],
                    c = +l || 1; a--; )
                        C.style(e, t, c + u),
                        (1 - o) * (1 - (o = s() / l || .5)) <= 0 && (a = 0),
                        c /= o;
                    c *= 2,
                    C.style(e, t, c + u),
                    n = n || []
                }
                return n && (c = +c || +l || 0,
                i = n[1] ? c + (n[1] + 1) * n[2] : +n[2],
                r && (r.unit = u,
                r.start = c,
                r.end = i)),
                i
            }
            var fe = {};
            function de(e) {
                var t, n = e.ownerDocument, r = e.nodeName, i = fe[r];
                return i || (t = n.body.appendChild(n.createElement(r)),
                i = C.css(t, "display"),
                t.parentNode.removeChild(t),
                "none" === i && (i = "block"),
                fe[r] = i,
                i)
            }
            function pe(e, t) {
                for (var n, r, i = [], o = 0, a = e.length; o < a; o++)
                    (r = e[o]).style && (n = r.style.display,
                    t ? ("none" === n && (i[o] = K.get(r, "display") || null,
                    i[o] || (r.style.display = "")),
                    "" === r.style.display && ue(r) && (i[o] = de(r))) : "none" !== n && (i[o] = "none",
                    K.set(r, "display", n)));
                for (o = 0; o < a; o++)
                    null != i[o] && (e[o].style.display = i[o]);
                return e
            }
            C.fn.extend({
                show: function() {
                    return pe(this, !0)
                },
                hide: function() {
                    return pe(this)
                },
                toggle: function(e) {
                    return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each((function() {
                        ue(this) ? C(this).show() : C(this).hide()
                    }
                    ))
                }
            });
            var he, me, ge = /^(?:checkbox|radio)$/i, ve = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, ye = /^$|^module$|\/(?:java|ecma)script/i;
            he = b.createDocumentFragment().appendChild(b.createElement("div")),
            (me = b.createElement("input")).setAttribute("type", "radio"),
            me.setAttribute("checked", "checked"),
            me.setAttribute("name", "t"),
            he.appendChild(me),
            g.checkClone = he.cloneNode(!0).cloneNode(!0).lastChild.checked,
            he.innerHTML = "<textarea>x</textarea>",
            g.noCloneChecked = !!he.cloneNode(!0).lastChild.defaultValue,
            he.innerHTML = "<option></option>",
            g.option = !!he.lastChild;
            var be = {
                thead: [1, "<table>", "</table>"],
                col: [2, "<table><colgroup>", "</colgroup></table>"],
                tr: [2, "<table><tbody>", "</tbody></table>"],
                td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
                _default: [0, "", ""]
            };
            function xe(e, t) {
                var n;
                return n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : [],
                void 0 === t || t && j(e, t) ? C.merge([e], n) : n
            }
            function we(e, t) {
                for (var n = 0, r = e.length; n < r; n++)
                    K.set(e[n], "globalEval", !t || K.get(t[n], "globalEval"))
            }
            be.tbody = be.tfoot = be.colgroup = be.caption = be.thead,
            be.th = be.td,
            g.option || (be.optgroup = be.option = [1, "<select multiple='multiple'>", "</select>"]);
            var Te = /<|&#?\w+;/;
            function ke(e, t, n, r, i) {
                for (var o, a, s, l, u, c, f = t.createDocumentFragment(), d = [], p = 0, h = e.length; p < h; p++)
                    if ((o = e[p]) || 0 === o)
                        if ("object" === T(o))
                            C.merge(d, o.nodeType ? [o] : o);
                        else if (Te.test(o)) {
                            for (a = a || f.appendChild(t.createElement("div")),
                            s = (ve.exec(o) || ["", ""])[1].toLowerCase(),
                            l = be[s] || be._default,
                            a.innerHTML = l[1] + C.htmlPrefilter(o) + l[2],
                            c = l[0]; c--; )
                                a = a.lastChild;
                            C.merge(d, a.childNodes),
                            (a = f.firstChild).textContent = ""
                        } else
                            d.push(t.createTextNode(o));
                for (f.textContent = "",
                p = 0; o = d[p++]; )
                    if (r && C.inArray(o, r) > -1)
                        i && i.push(o);
                    else if (u = se(o),
                    a = xe(f.appendChild(o), "script"),
                    u && we(a),
                    n)
                        for (c = 0; o = a[c++]; )
                            ye.test(o.type || "") && n.push(o);
                return f
            }
            var Ce = /^key/
              , Ee = /^(?:mouse|pointer|contextmenu|drag|drop)|click/
              , Se = /^([^.]*)(?:\.(.+)|)/;
            function Ae() {
                return !0
            }
            function De() {
                return !1
            }
            function Ne(e, t) {
                return e === function() {
                    try {
                        return b.activeElement
                    } catch (e) {}
                }() == ("focus" === t)
            }
            function je(e, t, n, r, i, o) {
                var a, s;
                if ("object" == typeof t) {
                    for (s in "string" != typeof n && (r = r || n,
                    n = void 0),
                    t)
                        je(e, s, n, r, t[s], o);
                    return e
                }
                if (null == r && null == i ? (i = n,
                r = n = void 0) : null == i && ("string" == typeof n ? (i = r,
                r = void 0) : (i = r,
                r = n,
                n = void 0)),
                !1 === i)
                    i = De;
                else if (!i)
                    return e;
                return 1 === o && (a = i,
                (i = function(e) {
                    return C().off(e),
                    a.apply(this, arguments)
                }
                ).guid = a.guid || (a.guid = C.guid++)),
                e.each((function() {
                    C.event.add(this, t, i, r, n)
                }
                ))
            }
            function Le(e, t, n) {
                n ? (K.set(e, t, !1),
                C.event.add(e, t, {
                    namespace: !1,
                    handler: function(e) {
                        var r, i, o = K.get(this, t);
                        if (1 & e.isTrigger && this[t]) {
                            if (o.length)
                                (C.event.special[t] || {}).delegateType && e.stopPropagation();
                            else if (o = s.call(arguments),
                            K.set(this, t, o),
                            r = n(this, t),
                            this[t](),
                            o !== (i = K.get(this, t)) || r ? K.set(this, t, !1) : i = {},
                            o !== i)
                                return e.stopImmediatePropagation(),
                                e.preventDefault(),
                                i.value
                        } else
                            o.length && (K.set(this, t, {
                                value: C.event.trigger(C.extend(o[0], C.Event.prototype), o.slice(1), this)
                            }),
                            e.stopImmediatePropagation())
                    }
                })) : void 0 === K.get(e, t) && C.event.add(e, t, Ae)
            }
            C.event = {
                global: {},
                add: function(e, t, n, r, i) {
                    var o, a, s, l, u, c, f, d, p, h, m, g = K.get(e);
                    if (G(e))
                        for (n.handler && (n = (o = n).handler,
                        i = o.selector),
                        i && C.find.matchesSelector(ae, i),
                        n.guid || (n.guid = C.guid++),
                        (l = g.events) || (l = g.events = Object.create(null)),
                        (a = g.handle) || (a = g.handle = function(t) {
                            return void 0 !== C && C.event.triggered !== t.type ? C.event.dispatch.apply(e, arguments) : void 0
                        }
                        ),
                        u = (t = (t || "").match(H) || [""]).length; u--; )
                            p = m = (s = Se.exec(t[u]) || [])[1],
                            h = (s[2] || "").split(".").sort(),
                            p && (f = C.event.special[p] || {},
                            p = (i ? f.delegateType : f.bindType) || p,
                            f = C.event.special[p] || {},
                            c = C.extend({
                                type: p,
                                origType: m,
                                data: r,
                                handler: n,
                                guid: n.guid,
                                selector: i,
                                needsContext: i && C.expr.match.needsContext.test(i),
                                namespace: h.join(".")
                            }, o),
                            (d = l[p]) || ((d = l[p] = []).delegateCount = 0,
                            f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(p, a)),
                            f.add && (f.add.call(e, c),
                            c.handler.guid || (c.handler.guid = n.guid)),
                            i ? d.splice(d.delegateCount++, 0, c) : d.push(c),
                            C.event.global[p] = !0)
                },
                remove: function(e, t, n, r, i) {
                    var o, a, s, l, u, c, f, d, p, h, m, g = K.hasData(e) && K.get(e);
                    if (g && (l = g.events)) {
                        for (u = (t = (t || "").match(H) || [""]).length; u--; )
                            if (p = m = (s = Se.exec(t[u]) || [])[1],
                            h = (s[2] || "").split(".").sort(),
                            p) {
                                for (f = C.event.special[p] || {},
                                d = l[p = (r ? f.delegateType : f.bindType) || p] || [],
                                s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                                a = o = d.length; o--; )
                                    c = d[o],
                                    !i && m !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (d.splice(o, 1),
                                    c.selector && d.delegateCount--,
                                    f.remove && f.remove.call(e, c));
                                a && !d.length && (f.teardown && !1 !== f.teardown.call(e, h, g.handle) || C.removeEvent(e, p, g.handle),
                                delete l[p])
                            } else
                                for (p in l)
                                    C.event.remove(e, p + t[u], n, r, !0);
                        C.isEmptyObject(l) && K.remove(e, "handle events")
                    }
                },
                dispatch: function(e) {
                    var t, n, r, i, o, a, s = new Array(arguments.length), l = C.event.fix(e), u = (K.get(this, "events") || Object.create(null))[l.type] || [], c = C.event.special[l.type] || {};
                    for (s[0] = l,
                    t = 1; t < arguments.length; t++)
                        s[t] = arguments[t];
                    if (l.delegateTarget = this,
                    !c.preDispatch || !1 !== c.preDispatch.call(this, l)) {
                        for (a = C.event.handlers.call(this, l, u),
                        t = 0; (i = a[t++]) && !l.isPropagationStopped(); )
                            for (l.currentTarget = i.elem,
                            n = 0; (o = i.handlers[n++]) && !l.isImmediatePropagationStopped(); )
                                l.rnamespace && !1 !== o.namespace && !l.rnamespace.test(o.namespace) || (l.handleObj = o,
                                l.data = o.data,
                                void 0 !== (r = ((C.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (l.result = r) && (l.preventDefault(),
                                l.stopPropagation()));
                        return c.postDispatch && c.postDispatch.call(this, l),
                        l.result
                    }
                },
                handlers: function(e, t) {
                    var n, r, i, o, a, s = [], l = t.delegateCount, u = e.target;
                    if (l && u.nodeType && !("click" === e.type && e.button >= 1))
                        for (; u !== this; u = u.parentNode || this)
                            if (1 === u.nodeType && ("click" !== e.type || !0 !== u.disabled)) {
                                for (o = [],
                                a = {},
                                n = 0; n < l; n++)
                                    void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? C(i, this).index(u) > -1 : C.find(i, this, null, [u]).length),
                                    a[i] && o.push(r);
                                o.length && s.push({
                                    elem: u,
                                    handlers: o
                                })
                            }
                    return u = this,
                    l < t.length && s.push({
                        elem: u,
                        handlers: t.slice(l)
                    }),
                    s
                },
                addProp: function(e, t) {
                    Object.defineProperty(C.Event.prototype, e, {
                        enumerable: !0,
                        configurable: !0,
                        get: v(t) ? function() {
                            if (this.originalEvent)
                                return t(this.originalEvent)
                        }
                        : function() {
                            if (this.originalEvent)
                                return this.originalEvent[e]
                        }
                        ,
                        set: function(t) {
                            Object.defineProperty(this, e, {
                                enumerable: !0,
                                configurable: !0,
                                writable: !0,
                                value: t
                            })
                        }
                    })
                },
                fix: function(e) {
                    return e[C.expando] ? e : new C.Event(e)
                },
                special: {
                    load: {
                        noBubble: !0
                    },
                    click: {
                        setup: function(e) {
                            var t = this || e;
                            return ge.test(t.type) && t.click && j(t, "input") && Le(t, "click", Ae),
                            !1
                        },
                        trigger: function(e) {
                            var t = this || e;
                            return ge.test(t.type) && t.click && j(t, "input") && Le(t, "click"),
                            !0
                        },
                        _default: function(e) {
                            var t = e.target;
                            return ge.test(t.type) && t.click && j(t, "input") && K.get(t, "click") || j(t, "a")
                        }
                    },
                    beforeunload: {
                        postDispatch: function(e) {
                            void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                        }
                    }
                }
            },
            C.removeEvent = function(e, t, n) {
                e.removeEventListener && e.removeEventListener(t, n)
            }
            ,
            C.Event = function(e, t) {
                if (!(this instanceof C.Event))
                    return new C.Event(e,t);
                e && e.type ? (this.originalEvent = e,
                this.type = e.type,
                this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ae : De,
                this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target,
                this.currentTarget = e.currentTarget,
                this.relatedTarget = e.relatedTarget) : this.type = e,
                t && C.extend(this, t),
                this.timeStamp = e && e.timeStamp || Date.now(),
                this[C.expando] = !0
            }
            ,
            C.Event.prototype = {
                constructor: C.Event,
                isDefaultPrevented: De,
                isPropagationStopped: De,
                isImmediatePropagationStopped: De,
                isSimulated: !1,
                preventDefault: function() {
                    var e = this.originalEvent;
                    this.isDefaultPrevented = Ae,
                    e && !this.isSimulated && e.preventDefault()
                },
                stopPropagation: function() {
                    var e = this.originalEvent;
                    this.isPropagationStopped = Ae,
                    e && !this.isSimulated && e.stopPropagation()
                },
                stopImmediatePropagation: function() {
                    var e = this.originalEvent;
                    this.isImmediatePropagationStopped = Ae,
                    e && !this.isSimulated && e.stopImmediatePropagation(),
                    this.stopPropagation()
                }
            },
            C.each({
                altKey: !0,
                bubbles: !0,
                cancelable: !0,
                changedTouches: !0,
                ctrlKey: !0,
                detail: !0,
                eventPhase: !0,
                metaKey: !0,
                pageX: !0,
                pageY: !0,
                shiftKey: !0,
                view: !0,
                char: !0,
                code: !0,
                charCode: !0,
                key: !0,
                keyCode: !0,
                button: !0,
                buttons: !0,
                clientX: !0,
                clientY: !0,
                offsetX: !0,
                offsetY: !0,
                pointerId: !0,
                pointerType: !0,
                screenX: !0,
                screenY: !0,
                targetTouches: !0,
                toElement: !0,
                touches: !0,
                which: function(e) {
                    var t = e.button;
                    return null == e.which && Ce.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Ee.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which
                }
            }, C.event.addProp),
            C.each({
                focus: "focusin",
                blur: "focusout"
            }, (function(e, t) {
                C.event.special[e] = {
                    setup: function() {
                        return Le(this, e, Ne),
                        !1
                    },
                    trigger: function() {
                        return Le(this, e),
                        !0
                    },
                    delegateType: t
                }
            }
            )),
            C.each({
                mouseenter: "mouseover",
                mouseleave: "mouseout",
                pointerenter: "pointerover",
                pointerleave: "pointerout"
            }, (function(e, t) {
                C.event.special[e] = {
                    delegateType: t,
                    bindType: t,
                    handle: function(e) {
                        var n, r = this, i = e.relatedTarget, o = e.handleObj;
                        return i && (i === r || C.contains(r, i)) || (e.type = o.origType,
                        n = o.handler.apply(this, arguments),
                        e.type = t),
                        n
                    }
                }
            }
            )),
            C.fn.extend({
                on: function(e, t, n, r) {
                    return je(this, e, t, n, r)
                },
                one: function(e, t, n, r) {
                    return je(this, e, t, n, r, 1)
                },
                off: function(e, t, n) {
                    var r, i;
                    if (e && e.preventDefault && e.handleObj)
                        return r = e.handleObj,
                        C(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler),
                        this;
                    if ("object" == typeof e) {
                        for (i in e)
                            this.off(i, t, e[i]);
                        return this
                    }
                    return !1 !== t && "function" != typeof t || (n = t,
                    t = void 0),
                    !1 === n && (n = De),
                    this.each((function() {
                        C.event.remove(this, e, n, t)
                    }
                    ))
                }
            });
            var Oe = /<script|<style|<link/i
              , qe = /checked\s*(?:[^=]|=\s*.checked.)/i
              , $e = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
            function Ie(e, t) {
                return j(e, "table") && j(11 !== t.nodeType ? t : t.firstChild, "tr") && C(e).children("tbody")[0] || e
            }
            function Me(e) {
                return e.type = (null !== e.getAttribute("type")) + "/" + e.type,
                e
            }
            function Pe(e) {
                return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"),
                e
            }
            function He(e, t) {
                var n, r, i, o, a, s;
                if (1 === t.nodeType) {
                    if (K.hasData(e) && (s = K.get(e).events))
                        for (i in K.remove(t, "handle events"),
                        s)
                            for (n = 0,
                            r = s[i].length; n < r; n++)
                                C.event.add(t, i, s[i][n]);
                    Z.hasData(e) && (o = Z.access(e),
                    a = C.extend({}, o),
                    Z.set(t, a))
                }
            }
            function Re(e, t) {
                var n = t.nodeName.toLowerCase();
                "input" === n && ge.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue)
            }
            function Fe(e, t, n, r) {
                t = l(t);
                var i, o, a, s, u, c, f = 0, d = e.length, p = d - 1, h = t[0], m = v(h);
                if (m || d > 1 && "string" == typeof h && !g.checkClone && qe.test(h))
                    return e.each((function(i) {
                        var o = e.eq(i);
                        m && (t[0] = h.call(this, i, o.html())),
                        Fe(o, t, n, r)
                    }
                    ));
                if (d && (o = (i = ke(t, e[0].ownerDocument, !1, e, r)).firstChild,
                1 === i.childNodes.length && (i = o),
                o || r)) {
                    for (s = (a = C.map(xe(i, "script"), Me)).length; f < d; f++)
                        u = i,
                        f !== p && (u = C.clone(u, !0, !0),
                        s && C.merge(a, xe(u, "script"))),
                        n.call(e[f], u, f);
                    if (s)
                        for (c = a[a.length - 1].ownerDocument,
                        C.map(a, Pe),
                        f = 0; f < s; f++)
                            u = a[f],
                            ye.test(u.type || "") && !K.access(u, "globalEval") && C.contains(c, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? C._evalUrl && !u.noModule && C._evalUrl(u.src, {
                                nonce: u.nonce || u.getAttribute("nonce")
                            }, c) : w(u.textContent.replace($e, ""), u, c))
                }
                return e
            }
            function _e(e, t, n) {
                for (var r, i = t ? C.filter(t, e) : e, o = 0; null != (r = i[o]); o++)
                    n || 1 !== r.nodeType || C.cleanData(xe(r)),
                    r.parentNode && (n && se(r) && we(xe(r, "script")),
                    r.parentNode.removeChild(r));
                return e
            }
            C.extend({
                htmlPrefilter: function(e) {
                    return e
                },
                clone: function(e, t, n) {
                    var r, i, o, a, s = e.cloneNode(!0), l = se(e);
                    if (!(g.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || C.isXMLDoc(e)))
                        for (a = xe(s),
                        r = 0,
                        i = (o = xe(e)).length; r < i; r++)
                            Re(o[r], a[r]);
                    if (t)
                        if (n)
                            for (o = o || xe(e),
                            a = a || xe(s),
                            r = 0,
                            i = o.length; r < i; r++)
                                He(o[r], a[r]);
                        else
                            He(e, s);
                    return (a = xe(s, "script")).length > 0 && we(a, !l && xe(e, "script")),
                    s
                },
                cleanData: function(e) {
                    for (var t, n, r, i = C.event.special, o = 0; void 0 !== (n = e[o]); o++)
                        if (G(n)) {
                            if (t = n[K.expando]) {
                                if (t.events)
                                    for (r in t.events)
                                        i[r] ? C.event.remove(n, r) : C.removeEvent(n, r, t.handle);
                                n[K.expando] = void 0
                            }
                            n[Z.expando] && (n[Z.expando] = void 0)
                        }
                }
            }),
            C.fn.extend({
                detach: function(e) {
                    return _e(this, e, !0)
                },
                remove: function(e) {
                    return _e(this, e)
                },
                text: function(e) {
                    return U(this, (function(e) {
                        return void 0 === e ? C.text(this) : this.empty().each((function() {
                            1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
                        }
                        ))
                    }
                    ), null, e, arguments.length)
                },
                append: function() {
                    return Fe(this, arguments, (function(e) {
                        1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Ie(this, e).appendChild(e)
                    }
                    ))
                },
                prepend: function() {
                    return Fe(this, arguments, (function(e) {
                        if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                            var t = Ie(this, e);
                            t.insertBefore(e, t.firstChild)
                        }
                    }
                    ))
                },
                before: function() {
                    return Fe(this, arguments, (function(e) {
                        this.parentNode && this.parentNode.insertBefore(e, this)
                    }
                    ))
                },
                after: function() {
                    return Fe(this, arguments, (function(e) {
                        this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
                    }
                    ))
                },
                empty: function() {
                    for (var e, t = 0; null != (e = this[t]); t++)
                        1 === e.nodeType && (C.cleanData(xe(e, !1)),
                        e.textContent = "");
                    return this
                },
                clone: function(e, t) {
                    return e = null != e && e,
                    t = null == t ? e : t,
                    this.map((function() {
                        return C.clone(this, e, t)
                    }
                    ))
                },
                html: function(e) {
                    return U(this, (function(e) {
                        var t = this[0] || {}
                          , n = 0
                          , r = this.length;
                        if (void 0 === e && 1 === t.nodeType)
                            return t.innerHTML;
                        if ("string" == typeof e && !Oe.test(e) && !be[(ve.exec(e) || ["", ""])[1].toLowerCase()]) {
                            e = C.htmlPrefilter(e);
                            try {
                                for (; n < r; n++)
                                    1 === (t = this[n] || {}).nodeType && (C.cleanData(xe(t, !1)),
                                    t.innerHTML = e);
                                t = 0
                            } catch (e) {}
                        }
                        t && this.empty().append(e)
                    }
                    ), null, e, arguments.length)
                },
                replaceWith: function() {
                    var e = [];
                    return Fe(this, arguments, (function(t) {
                        var n = this.parentNode;
                        C.inArray(this, e) < 0 && (C.cleanData(xe(this)),
                        n && n.replaceChild(t, this))
                    }
                    ), e)
                }
            }),
            C.each({
                appendTo: "append",
                prependTo: "prepend",
                insertBefore: "before",
                insertAfter: "after",
                replaceAll: "replaceWith"
            }, (function(e, t) {
                C.fn[e] = function(e) {
                    for (var n, r = [], i = C(e), o = i.length - 1, a = 0; a <= o; a++)
                        n = a === o ? this : this.clone(!0),
                        C(i[a])[t](n),
                        u.apply(r, n.get());
                    return this.pushStack(r)
                }
            }
            ));
            var ze = new RegExp("^(" + re + ")(?!px)[a-z%]+$","i")
              , Be = function(e) {
                var t = e.ownerDocument.defaultView;
                return t && t.opener || (t = r),
                t.getComputedStyle(e)
            }
              , We = function(e, t, n) {
                var r, i, o = {};
                for (i in t)
                    o[i] = e.style[i],
                    e.style[i] = t[i];
                for (i in r = n.call(e),
                t)
                    e.style[i] = o[i];
                return r
            }
              , Ue = new RegExp(oe.join("|"),"i");
            function Xe(e, t, n) {
                var r, i, o, a, s = e.style;
                return (n = n || Be(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || se(e) || (a = C.style(e, t)),
                !g.pixelBoxStyles() && ze.test(a) && Ue.test(t) && (r = s.width,
                i = s.minWidth,
                o = s.maxWidth,
                s.minWidth = s.maxWidth = s.width = a,
                a = n.width,
                s.width = r,
                s.minWidth = i,
                s.maxWidth = o)),
                void 0 !== a ? a + "" : a
            }
            function Ve(e, t) {
                return {
                    get: function() {
                        if (!e())
                            return (this.get = t).apply(this, arguments);
                        delete this.get
                    }
                }
            }
            !function() {
                function e() {
                    if (c) {
                        u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",
                        c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",
                        ae.appendChild(u).appendChild(c);
                        var e = r.getComputedStyle(c);
                        n = "1%" !== e.top,
                        l = 12 === t(e.marginLeft),
                        c.style.right = "60%",
                        a = 36 === t(e.right),
                        i = 36 === t(e.width),
                        c.style.position = "absolute",
                        o = 12 === t(c.offsetWidth / 3),
                        ae.removeChild(u),
                        c = null
                    }
                }
                function t(e) {
                    return Math.round(parseFloat(e))
                }
                var n, i, o, a, s, l, u = b.createElement("div"), c = b.createElement("div");
                c.style && (c.style.backgroundClip = "content-box",
                c.cloneNode(!0).style.backgroundClip = "",
                g.clearCloneStyle = "content-box" === c.style.backgroundClip,
                C.extend(g, {
                    boxSizingReliable: function() {
                        return e(),
                        i
                    },
                    pixelBoxStyles: function() {
                        return e(),
                        a
                    },
                    pixelPosition: function() {
                        return e(),
                        n
                    },
                    reliableMarginLeft: function() {
                        return e(),
                        l
                    },
                    scrollboxSize: function() {
                        return e(),
                        o
                    },
                    reliableTrDimensions: function() {
                        var e, t, n, i;
                        return null == s && (e = b.createElement("table"),
                        t = b.createElement("tr"),
                        n = b.createElement("div"),
                        e.style.cssText = "position:absolute;left:-11111px",
                        t.style.height = "1px",
                        n.style.height = "9px",
                        ae.appendChild(e).appendChild(t).appendChild(n),
                        i = r.getComputedStyle(t),
                        s = parseInt(i.height) > 3,
                        ae.removeChild(e)),
                        s
                    }
                }))
            }();
            var Qe = ["Webkit", "Moz", "ms"]
              , Ye = b.createElement("div").style
              , Ge = {};
            function Je(e) {
                return C.cssProps[e] || Ge[e] || (e in Ye ? e : Ge[e] = function(e) {
                    for (var t = e[0].toUpperCase() + e.slice(1), n = Qe.length; n--; )
                        if ((e = Qe[n] + t)in Ye)
                            return e
                }(e) || e)
            }
            var Ke = /^(none|table(?!-c[ea]).+)/
              , Ze = /^--/
              , et = {
                position: "absolute",
                visibility: "hidden",
                display: "block"
            }
              , tt = {
                letterSpacing: "0",
                fontWeight: "400"
            };
            function nt(e, t, n) {
                var r = ie.exec(t);
                return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
            }
            function rt(e, t, n, r, i, o) {
                var a = "width" === t ? 1 : 0
                  , s = 0
                  , l = 0;
                if (n === (r ? "border" : "content"))
                    return 0;
                for (; a < 4; a += 2)
                    "margin" === n && (l += C.css(e, n + oe[a], !0, i)),
                    r ? ("content" === n && (l -= C.css(e, "padding" + oe[a], !0, i)),
                    "margin" !== n && (l -= C.css(e, "border" + oe[a] + "Width", !0, i))) : (l += C.css(e, "padding" + oe[a], !0, i),
                    "padding" !== n ? l += C.css(e, "border" + oe[a] + "Width", !0, i) : s += C.css(e, "border" + oe[a] + "Width", !0, i));
                return !r && o >= 0 && (l += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - l - s - .5)) || 0),
                l
            }
            function it(e, t, n) {
                var r = Be(e)
                  , i = (!g.boxSizingReliable() || n) && "border-box" === C.css(e, "boxSizing", !1, r)
                  , o = i
                  , a = Xe(e, t, r)
                  , s = "offset" + t[0].toUpperCase() + t.slice(1);
                if (ze.test(a)) {
                    if (!n)
                        return a;
                    a = "auto"
                }
                return (!g.boxSizingReliable() && i || !g.reliableTrDimensions() && j(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === C.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === C.css(e, "boxSizing", !1, r),
                (o = s in e) && (a = e[s])),
                (a = parseFloat(a) || 0) + rt(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
            }
            function ot(e, t, n, r, i) {
                return new ot.prototype.init(e,t,n,r,i)
            }
            C.extend({
                cssHooks: {
                    opacity: {
                        get: function(e, t) {
                            if (t) {
                                var n = Xe(e, "opacity");
                                return "" === n ? "1" : n
                            }
                        }
                    }
                },
                cssNumber: {
                    animationIterationCount: !0,
                    columnCount: !0,
                    fillOpacity: !0,
                    flexGrow: !0,
                    flexShrink: !0,
                    fontWeight: !0,
                    gridArea: !0,
                    gridColumn: !0,
                    gridColumnEnd: !0,
                    gridColumnStart: !0,
                    gridRow: !0,
                    gridRowEnd: !0,
                    gridRowStart: !0,
                    lineHeight: !0,
                    opacity: !0,
                    order: !0,
                    orphans: !0,
                    widows: !0,
                    zIndex: !0,
                    zoom: !0
                },
                cssProps: {},
                style: function(e, t, n, r) {
                    if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                        var i, o, a, s = Y(t), l = Ze.test(t), u = e.style;
                        if (l || (t = Je(s)),
                        a = C.cssHooks[t] || C.cssHooks[s],
                        void 0 === n)
                            return a && "get"in a && void 0 !== (i = a.get(e, !1, r)) ? i : u[t];
                        "string" == (o = typeof n) && (i = ie.exec(n)) && i[1] && (n = ce(e, t, i),
                        o = "number"),
                        null != n && n == n && ("number" !== o || l || (n += i && i[3] || (C.cssNumber[s] ? "" : "px")),
                        g.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (u[t] = "inherit"),
                        a && "set"in a && void 0 === (n = a.set(e, n, r)) || (l ? u.setProperty(t, n) : u[t] = n))
                    }
                },
                css: function(e, t, n, r) {
                    var i, o, a, s = Y(t);
                    return Ze.test(t) || (t = Je(s)),
                    (a = C.cssHooks[t] || C.cssHooks[s]) && "get"in a && (i = a.get(e, !0, n)),
                    void 0 === i && (i = Xe(e, t, r)),
                    "normal" === i && t in tt && (i = tt[t]),
                    "" === n || n ? (o = parseFloat(i),
                    !0 === n || isFinite(o) ? o || 0 : i) : i
                }
            }),
            C.each(["height", "width"], (function(e, t) {
                C.cssHooks[t] = {
                    get: function(e, n, r) {
                        if (n)
                            return !Ke.test(C.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? it(e, t, r) : We(e, et, (function() {
                                return it(e, t, r)
                            }
                            ))
                    },
                    set: function(e, n, r) {
                        var i, o = Be(e), a = !g.scrollboxSize() && "absolute" === o.position, s = (a || r) && "border-box" === C.css(e, "boxSizing", !1, o), l = r ? rt(e, t, r, s, o) : 0;
                        return s && a && (l -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - rt(e, t, "border", !1, o) - .5)),
                        l && (i = ie.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n,
                        n = C.css(e, t)),
                        nt(0, n, l)
                    }
                }
            }
            )),
            C.cssHooks.marginLeft = Ve(g.reliableMarginLeft, (function(e, t) {
                if (t)
                    return (parseFloat(Xe(e, "marginLeft")) || e.getBoundingClientRect().left - We(e, {
                        marginLeft: 0
                    }, (function() {
                        return e.getBoundingClientRect().left
                    }
                    ))) + "px"
            }
            )),
            C.each({
                margin: "",
                padding: "",
                border: "Width"
            }, (function(e, t) {
                C.cssHooks[e + t] = {
                    expand: function(n) {
                        for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++)
                            i[e + oe[r] + t] = o[r] || o[r - 2] || o[0];
                        return i
                    }
                },
                "margin" !== e && (C.cssHooks[e + t].set = nt)
            }
            )),
            C.fn.extend({
                css: function(e, t) {
                    return U(this, (function(e, t, n) {
                        var r, i, o = {}, a = 0;
                        if (Array.isArray(t)) {
                            for (r = Be(e),
                            i = t.length; a < i; a++)
                                o[t[a]] = C.css(e, t[a], !1, r);
                            return o
                        }
                        return void 0 !== n ? C.style(e, t, n) : C.css(e, t)
                    }
                    ), e, t, arguments.length > 1)
                }
            }),
            C.Tween = ot,
            ot.prototype = {
                constructor: ot,
                init: function(e, t, n, r, i, o) {
                    this.elem = e,
                    this.prop = n,
                    this.easing = i || C.easing._default,
                    this.options = t,
                    this.start = this.now = this.cur(),
                    this.end = r,
                    this.unit = o || (C.cssNumber[n] ? "" : "px")
                },
                cur: function() {
                    var e = ot.propHooks[this.prop];
                    return e && e.get ? e.get(this) : ot.propHooks._default.get(this)
                },
                run: function(e) {
                    var t, n = ot.propHooks[this.prop];
                    return this.options.duration ? this.pos = t = C.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e,
                    this.now = (this.end - this.start) * t + this.start,
                    this.options.step && this.options.step.call(this.elem, this.now, this),
                    n && n.set ? n.set(this) : ot.propHooks._default.set(this),
                    this
                }
            },
            ot.prototype.init.prototype = ot.prototype,
            ot.propHooks = {
                _default: {
                    get: function(e) {
                        var t;
                        return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = C.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
                    },
                    set: function(e) {
                        C.fx.step[e.prop] ? C.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !C.cssHooks[e.prop] && null == e.elem.style[Je(e.prop)] ? e.elem[e.prop] = e.now : C.style(e.elem, e.prop, e.now + e.unit)
                    }
                }
            },
            ot.propHooks.scrollTop = ot.propHooks.scrollLeft = {
                set: function(e) {
                    e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
                }
            },
            C.easing = {
                linear: function(e) {
                    return e
                },
                swing: function(e) {
                    return .5 - Math.cos(e * Math.PI) / 2
                },
                _default: "swing"
            },
            C.fx = ot.prototype.init,
            C.fx.step = {};
            var at, st, lt = /^(?:toggle|show|hide)$/, ut = /queueHooks$/;
            function ct() {
                st && (!1 === b.hidden && r.requestAnimationFrame ? r.requestAnimationFrame(ct) : r.setTimeout(ct, C.fx.interval),
                C.fx.tick())
            }
            function ft() {
                return r.setTimeout((function() {
                    at = void 0
                }
                )),
                at = Date.now()
            }
            function dt(e, t) {
                var n, r = 0, i = {
                    height: e
                };
                for (t = t ? 1 : 0; r < 4; r += 2 - t)
                    i["margin" + (n = oe[r])] = i["padding" + n] = e;
                return t && (i.opacity = i.width = e),
                i
            }
            function pt(e, t, n) {
                for (var r, i = (ht.tweeners[t] || []).concat(ht.tweeners["*"]), o = 0, a = i.length; o < a; o++)
                    if (r = i[o].call(n, t, e))
                        return r
            }
            function ht(e, t, n) {
                var r, i, o = 0, a = ht.prefilters.length, s = C.Deferred().always((function() {
                    delete l.elem
                }
                )), l = function() {
                    if (i)
                        return !1;
                    for (var t = at || ft(), n = Math.max(0, u.startTime + u.duration - t), r = 1 - (n / u.duration || 0), o = 0, a = u.tweens.length; o < a; o++)
                        u.tweens[o].run(r);
                    return s.notifyWith(e, [u, r, n]),
                    r < 1 && a ? n : (a || s.notifyWith(e, [u, 1, 0]),
                    s.resolveWith(e, [u]),
                    !1)
                }, u = s.promise({
                    elem: e,
                    props: C.extend({}, t),
                    opts: C.extend(!0, {
                        specialEasing: {},
                        easing: C.easing._default
                    }, n),
                    originalProperties: t,
                    originalOptions: n,
                    startTime: at || ft(),
                    duration: n.duration,
                    tweens: [],
                    createTween: function(t, n) {
                        var r = C.Tween(e, u.opts, t, n, u.opts.specialEasing[t] || u.opts.easing);
                        return u.tweens.push(r),
                        r
                    },
                    stop: function(t) {
                        var n = 0
                          , r = t ? u.tweens.length : 0;
                        if (i)
                            return this;
                        for (i = !0; n < r; n++)
                            u.tweens[n].run(1);
                        return t ? (s.notifyWith(e, [u, 1, 0]),
                        s.resolveWith(e, [u, t])) : s.rejectWith(e, [u, t]),
                        this
                    }
                }), c = u.props;
                for (function(e, t) {
                    var n, r, i, o, a;
                    for (n in e)
                        if (i = t[r = Y(n)],
                        o = e[n],
                        Array.isArray(o) && (i = o[1],
                        o = e[n] = o[0]),
                        n !== r && (e[r] = o,
                        delete e[n]),
                        (a = C.cssHooks[r]) && "expand"in a)
                            for (n in o = a.expand(o),
                            delete e[r],
                            o)
                                n in e || (e[n] = o[n],
                                t[n] = i);
                        else
                            t[r] = i
                }(c, u.opts.specialEasing); o < a; o++)
                    if (r = ht.prefilters[o].call(u, e, c, u.opts))
                        return v(r.stop) && (C._queueHooks(u.elem, u.opts.queue).stop = r.stop.bind(r)),
                        r;
                return C.map(c, pt, u),
                v(u.opts.start) && u.opts.start.call(e, u),
                u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always),
                C.fx.timer(C.extend(l, {
                    elem: e,
                    anim: u,
                    queue: u.opts.queue
                })),
                u
            }
            C.Animation = C.extend(ht, {
                tweeners: {
                    "*": [function(e, t) {
                        var n = this.createTween(e, t);
                        return ce(n.elem, e, ie.exec(t), n),
                        n
                    }
                    ]
                },
                tweener: function(e, t) {
                    v(e) ? (t = e,
                    e = ["*"]) : e = e.match(H);
                    for (var n, r = 0, i = e.length; r < i; r++)
                        n = e[r],
                        ht.tweeners[n] = ht.tweeners[n] || [],
                        ht.tweeners[n].unshift(t)
                },
                prefilters: [function(e, t, n) {
                    var r, i, o, a, s, l, u, c, f = "width"in t || "height"in t, d = this, p = {}, h = e.style, m = e.nodeType && ue(e), g = K.get(e, "fxshow");
                    for (r in n.queue || (null == (a = C._queueHooks(e, "fx")).unqueued && (a.unqueued = 0,
                    s = a.empty.fire,
                    a.empty.fire = function() {
                        a.unqueued || s()
                    }
                    ),
                    a.unqueued++,
                    d.always((function() {
                        d.always((function() {
                            a.unqueued--,
                            C.queue(e, "fx").length || a.empty.fire()
                        }
                        ))
                    }
                    ))),
                    t)
                        if (i = t[r],
                        lt.test(i)) {
                            if (delete t[r],
                            o = o || "toggle" === i,
                            i === (m ? "hide" : "show")) {
                                if ("show" !== i || !g || void 0 === g[r])
                                    continue;
                                m = !0
                            }
                            p[r] = g && g[r] || C.style(e, r)
                        }
                    if ((l = !C.isEmptyObject(t)) || !C.isEmptyObject(p))
                        for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY],
                        null == (u = g && g.display) && (u = K.get(e, "display")),
                        "none" === (c = C.css(e, "display")) && (u ? c = u : (pe([e], !0),
                        u = e.style.display || u,
                        c = C.css(e, "display"),
                        pe([e]))),
                        ("inline" === c || "inline-block" === c && null != u) && "none" === C.css(e, "float") && (l || (d.done((function() {
                            h.display = u
                        }
                        )),
                        null == u && (c = h.display,
                        u = "none" === c ? "" : c)),
                        h.display = "inline-block")),
                        n.overflow && (h.overflow = "hidden",
                        d.always((function() {
                            h.overflow = n.overflow[0],
                            h.overflowX = n.overflow[1],
                            h.overflowY = n.overflow[2]
                        }
                        ))),
                        l = !1,
                        p)
                            l || (g ? "hidden"in g && (m = g.hidden) : g = K.access(e, "fxshow", {
                                display: u
                            }),
                            o && (g.hidden = !m),
                            m && pe([e], !0),
                            d.done((function() {
                                for (r in m || pe([e]),
                                K.remove(e, "fxshow"),
                                p)
                                    C.style(e, r, p[r])
                            }
                            ))),
                            l = pt(m ? g[r] : 0, r, d),
                            r in g || (g[r] = l.start,
                            m && (l.end = l.start,
                            l.start = 0))
                }
                ],
                prefilter: function(e, t) {
                    t ? ht.prefilters.unshift(e) : ht.prefilters.push(e)
                }
            }),
            C.speed = function(e, t, n) {
                var r = e && "object" == typeof e ? C.extend({}, e) : {
                    complete: n || !n && t || v(e) && e,
                    duration: e,
                    easing: n && t || t && !v(t) && t
                };
                return C.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in C.fx.speeds ? r.duration = C.fx.speeds[r.duration] : r.duration = C.fx.speeds._default),
                null != r.queue && !0 !== r.queue || (r.queue = "fx"),
                r.old = r.complete,
                r.complete = function() {
                    v(r.old) && r.old.call(this),
                    r.queue && C.dequeue(this, r.queue)
                }
                ,
                r
            }
            ,
            C.fn.extend({
                fadeTo: function(e, t, n, r) {
                    return this.filter(ue).css("opacity", 0).show().end().animate({
                        opacity: t
                    }, e, n, r)
                },
                animate: function(e, t, n, r) {
                    var i = C.isEmptyObject(e)
                      , o = C.speed(t, n, r)
                      , a = function() {
                        var t = ht(this, C.extend({}, e), o);
                        (i || K.get(this, "finish")) && t.stop(!0)
                    };
                    return a.finish = a,
                    i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
                },
                stop: function(e, t, n) {
                    var r = function(e) {
                        var t = e.stop;
                        delete e.stop,
                        t(n)
                    };
                    return "string" != typeof e && (n = t,
                    t = e,
                    e = void 0),
                    t && this.queue(e || "fx", []),
                    this.each((function() {
                        var t = !0
                          , i = null != e && e + "queueHooks"
                          , o = C.timers
                          , a = K.get(this);
                        if (i)
                            a[i] && a[i].stop && r(a[i]);
                        else
                            for (i in a)
                                a[i] && a[i].stop && ut.test(i) && r(a[i]);
                        for (i = o.length; i--; )
                            o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n),
                            t = !1,
                            o.splice(i, 1));
                        !t && n || C.dequeue(this, e)
                    }
                    ))
                },
                finish: function(e) {
                    return !1 !== e && (e = e || "fx"),
                    this.each((function() {
                        var t, n = K.get(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = C.timers, a = r ? r.length : 0;
                        for (n.finish = !0,
                        C.queue(this, e, []),
                        i && i.stop && i.stop.call(this, !0),
                        t = o.length; t--; )
                            o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0),
                            o.splice(t, 1));
                        for (t = 0; t < a; t++)
                            r[t] && r[t].finish && r[t].finish.call(this);
                        delete n.finish
                    }
                    ))
                }
            }),
            C.each(["toggle", "show", "hide"], (function(e, t) {
                var n = C.fn[t];
                C.fn[t] = function(e, r, i) {
                    return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(dt(t, !0), e, r, i)
                }
            }
            )),
            C.each({
                slideDown: dt("show"),
                slideUp: dt("hide"),
                slideToggle: dt("toggle"),
                fadeIn: {
                    opacity: "show"
                },
                fadeOut: {
                    opacity: "hide"
                },
                fadeToggle: {
                    opacity: "toggle"
                }
            }, (function(e, t) {
                C.fn[e] = function(e, n, r) {
                    return this.animate(t, e, n, r)
                }
            }
            )),
            C.timers = [],
            C.fx.tick = function() {
                var e, t = 0, n = C.timers;
                for (at = Date.now(); t < n.length; t++)
                    (e = n[t])() || n[t] !== e || n.splice(t--, 1);
                n.length || C.fx.stop(),
                at = void 0
            }
            ,
            C.fx.timer = function(e) {
                C.timers.push(e),
                C.fx.start()
            }
            ,
            C.fx.interval = 13,
            C.fx.start = function() {
                st || (st = !0,
                ct())
            }
            ,
            C.fx.stop = function() {
                st = null
            }
            ,
            C.fx.speeds = {
                slow: 600,
                fast: 200,
                _default: 400
            },
            C.fn.delay = function(e, t) {
                return e = C.fx && C.fx.speeds[e] || e,
                t = t || "fx",
                this.queue(t, (function(t, n) {
                    var i = r.setTimeout(t, e);
                    n.stop = function() {
                        r.clearTimeout(i)
                    }
                }
                ))
            }
            ,
            function() {
                var e = b.createElement("input")
                  , t = b.createElement("select").appendChild(b.createElement("option"));
                e.type = "checkbox",
                g.checkOn = "" !== e.value,
                g.optSelected = t.selected,
                (e = b.createElement("input")).value = "t",
                e.type = "radio",
                g.radioValue = "t" === e.value
            }();
            var mt, gt = C.expr.attrHandle;
            C.fn.extend({
                attr: function(e, t) {
                    return U(this, C.attr, e, t, arguments.length > 1)
                },
                removeAttr: function(e) {
                    return this.each((function() {
                        C.removeAttr(this, e)
                    }
                    ))
                }
            }),
            C.extend({
                attr: function(e, t, n) {
                    var r, i, o = e.nodeType;
                    if (3 !== o && 8 !== o && 2 !== o)
                        return void 0 === e.getAttribute ? C.prop(e, t, n) : (1 === o && C.isXMLDoc(e) || (i = C.attrHooks[t.toLowerCase()] || (C.expr.match.bool.test(t) ? mt : void 0)),
                        void 0 !== n ? null === n ? void C.removeAttr(e, t) : i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""),
                        n) : i && "get"in i && null !== (r = i.get(e, t)) ? r : null == (r = C.find.attr(e, t)) ? void 0 : r)
                },
                attrHooks: {
                    type: {
                        set: function(e, t) {
                            if (!g.radioValue && "radio" === t && j(e, "input")) {
                                var n = e.value;
                                return e.setAttribute("type", t),
                                n && (e.value = n),
                                t
                            }
                        }
                    }
                },
                removeAttr: function(e, t) {
                    var n, r = 0, i = t && t.match(H);
                    if (i && 1 === e.nodeType)
                        for (; n = i[r++]; )
                            e.removeAttribute(n)
                }
            }),
            mt = {
                set: function(e, t, n) {
                    return !1 === t ? C.removeAttr(e, n) : e.setAttribute(n, n),
                    n
                }
            },
            C.each(C.expr.match.bool.source.match(/\w+/g), (function(e, t) {
                var n = gt[t] || C.find.attr;
                gt[t] = function(e, t, r) {
                    var i, o, a = t.toLowerCase();
                    return r || (o = gt[a],
                    gt[a] = i,
                    i = null != n(e, t, r) ? a : null,
                    gt[a] = o),
                    i
                }
            }
            ));
            var vt = /^(?:input|select|textarea|button)$/i
              , yt = /^(?:a|area)$/i;
            function bt(e) {
                return (e.match(H) || []).join(" ")
            }
            function xt(e) {
                return e.getAttribute && e.getAttribute("class") || ""
            }
            function wt(e) {
                return Array.isArray(e) ? e : "string" == typeof e && e.match(H) || []
            }
            C.fn.extend({
                prop: function(e, t) {
                    return U(this, C.prop, e, t, arguments.length > 1)
                },
                removeProp: function(e) {
                    return this.each((function() {
                        delete this[C.propFix[e] || e]
                    }
                    ))
                }
            }),
            C.extend({
                prop: function(e, t, n) {
                    var r, i, o = e.nodeType;
                    if (3 !== o && 8 !== o && 2 !== o)
                        return 1 === o && C.isXMLDoc(e) || (t = C.propFix[t] || t,
                        i = C.propHooks[t]),
                        void 0 !== n ? i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get"in i && null !== (r = i.get(e, t)) ? r : e[t]
                },
                propHooks: {
                    tabIndex: {
                        get: function(e) {
                            var t = C.find.attr(e, "tabindex");
                            return t ? parseInt(t, 10) : vt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1
                        }
                    }
                },
                propFix: {
                    for: "htmlFor",
                    class: "className"
                }
            }),
            g.optSelected || (C.propHooks.selected = {
                get: function(e) {
                    var t = e.parentNode;
                    return t && t.parentNode && t.parentNode.selectedIndex,
                    null
                },
                set: function(e) {
                    var t = e.parentNode;
                    t && (t.selectedIndex,
                    t.parentNode && t.parentNode.selectedIndex)
                }
            }),
            C.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], (function() {
                C.propFix[this.toLowerCase()] = this
            }
            )),
            C.fn.extend({
                addClass: function(e) {
                    var t, n, r, i, o, a, s, l = 0;
                    if (v(e))
                        return this.each((function(t) {
                            C(this).addClass(e.call(this, t, xt(this)))
                        }
                        ));
                    if ((t = wt(e)).length)
                        for (; n = this[l++]; )
                            if (i = xt(n),
                            r = 1 === n.nodeType && " " + bt(i) + " ") {
                                for (a = 0; o = t[a++]; )
                                    r.indexOf(" " + o + " ") < 0 && (r += o + " ");
                                i !== (s = bt(r)) && n.setAttribute("class", s)
                            }
                    return this
                },
                removeClass: function(e) {
                    var t, n, r, i, o, a, s, l = 0;
                    if (v(e))
                        return this.each((function(t) {
                            C(this).removeClass(e.call(this, t, xt(this)))
                        }
                        ));
                    if (!arguments.length)
                        return this.attr("class", "");
                    if ((t = wt(e)).length)
                        for (; n = this[l++]; )
                            if (i = xt(n),
                            r = 1 === n.nodeType && " " + bt(i) + " ") {
                                for (a = 0; o = t[a++]; )
                                    for (; r.indexOf(" " + o + " ") > -1; )
                                        r = r.replace(" " + o + " ", " ");
                                i !== (s = bt(r)) && n.setAttribute("class", s)
                            }
                    return this
                },
                toggleClass: function(e, t) {
                    var n = typeof e
                      , r = "string" === n || Array.isArray(e);
                    return "boolean" == typeof t && r ? t ? this.addClass(e) : this.removeClass(e) : v(e) ? this.each((function(n) {
                        C(this).toggleClass(e.call(this, n, xt(this), t), t)
                    }
                    )) : this.each((function() {
                        var t, i, o, a;
                        if (r)
                            for (i = 0,
                            o = C(this),
                            a = wt(e); t = a[i++]; )
                                o.hasClass(t) ? o.removeClass(t) : o.addClass(t);
                        else
                            void 0 !== e && "boolean" !== n || ((t = xt(this)) && K.set(this, "__className__", t),
                            this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : K.get(this, "__className__") || ""))
                    }
                    ))
                },
                hasClass: function(e) {
                    var t, n, r = 0;
                    for (t = " " + e + " "; n = this[r++]; )
                        if (1 === n.nodeType && (" " + bt(xt(n)) + " ").indexOf(t) > -1)
                            return !0;
                    return !1
                }
            });
            var Tt = /\r/g;
            C.fn.extend({
                val: function(e) {
                    var t, n, r, i = this[0];
                    return arguments.length ? (r = v(e),
                    this.each((function(n) {
                        var i;
                        1 === this.nodeType && (null == (i = r ? e.call(this, n, C(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : Array.isArray(i) && (i = C.map(i, (function(e) {
                            return null == e ? "" : e + ""
                        }
                        ))),
                        (t = C.valHooks[this.type] || C.valHooks[this.nodeName.toLowerCase()]) && "set"in t && void 0 !== t.set(this, i, "value") || (this.value = i))
                    }
                    ))) : i ? (t = C.valHooks[i.type] || C.valHooks[i.nodeName.toLowerCase()]) && "get"in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof (n = i.value) ? n.replace(Tt, "") : null == n ? "" : n : void 0
                }
            }),
            C.extend({
                valHooks: {
                    option: {
                        get: function(e) {
                            var t = C.find.attr(e, "value");
                            return null != t ? t : bt(C.text(e))
                        }
                    },
                    select: {
                        get: function(e) {
                            var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], l = a ? o + 1 : i.length;
                            for (r = o < 0 ? l : a ? o : 0; r < l; r++)
                                if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !j(n.parentNode, "optgroup"))) {
                                    if (t = C(n).val(),
                                    a)
                                        return t;
                                    s.push(t)
                                }
                            return s
                        },
                        set: function(e, t) {
                            for (var n, r, i = e.options, o = C.makeArray(t), a = i.length; a--; )
                                ((r = i[a]).selected = C.inArray(C.valHooks.option.get(r), o) > -1) && (n = !0);
                            return n || (e.selectedIndex = -1),
                            o
                        }
                    }
                }
            }),
            C.each(["radio", "checkbox"], (function() {
                C.valHooks[this] = {
                    set: function(e, t) {
                        if (Array.isArray(t))
                            return e.checked = C.inArray(C(e).val(), t) > -1
                    }
                },
                g.checkOn || (C.valHooks[this].get = function(e) {
                    return null === e.getAttribute("value") ? "on" : e.value
                }
                )
            }
            )),
            g.focusin = "onfocusin"in r;
            var kt = /^(?:focusinfocus|focusoutblur)$/
              , Ct = function(e) {
                e.stopPropagation()
            };
            C.extend(C.event, {
                trigger: function(e, t, n, i) {
                    var o, a, s, l, u, c, f, d, h = [n || b], m = p.call(e, "type") ? e.type : e, g = p.call(e, "namespace") ? e.namespace.split(".") : [];
                    if (a = d = s = n = n || b,
                    3 !== n.nodeType && 8 !== n.nodeType && !kt.test(m + C.event.triggered) && (m.indexOf(".") > -1 && (g = m.split("."),
                    m = g.shift(),
                    g.sort()),
                    u = m.indexOf(":") < 0 && "on" + m,
                    (e = e[C.expando] ? e : new C.Event(m,"object" == typeof e && e)).isTrigger = i ? 2 : 3,
                    e.namespace = g.join("."),
                    e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + g.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
                    e.result = void 0,
                    e.target || (e.target = n),
                    t = null == t ? [e] : C.makeArray(t, [e]),
                    f = C.event.special[m] || {},
                    i || !f.trigger || !1 !== f.trigger.apply(n, t))) {
                        if (!i && !f.noBubble && !y(n)) {
                            for (l = f.delegateType || m,
                            kt.test(l + m) || (a = a.parentNode); a; a = a.parentNode)
                                h.push(a),
                                s = a;
                            s === (n.ownerDocument || b) && h.push(s.defaultView || s.parentWindow || r)
                        }
                        for (o = 0; (a = h[o++]) && !e.isPropagationStopped(); )
                            d = a,
                            e.type = o > 1 ? l : f.bindType || m,
                            (c = (K.get(a, "events") || Object.create(null))[e.type] && K.get(a, "handle")) && c.apply(a, t),
                            (c = u && a[u]) && c.apply && G(a) && (e.result = c.apply(a, t),
                            !1 === e.result && e.preventDefault());
                        return e.type = m,
                        i || e.isDefaultPrevented() || f._default && !1 !== f._default.apply(h.pop(), t) || !G(n) || u && v(n[m]) && !y(n) && ((s = n[u]) && (n[u] = null),
                        C.event.triggered = m,
                        e.isPropagationStopped() && d.addEventListener(m, Ct),
                        n[m](),
                        e.isPropagationStopped() && d.removeEventListener(m, Ct),
                        C.event.triggered = void 0,
                        s && (n[u] = s)),
                        e.result
                    }
                },
                simulate: function(e, t, n) {
                    var r = C.extend(new C.Event, n, {
                        type: e,
                        isSimulated: !0
                    });
                    C.event.trigger(r, null, t)
                }
            }),
            C.fn.extend({
                trigger: function(e, t) {
                    return this.each((function() {
                        C.event.trigger(e, t, this)
                    }
                    ))
                },
                triggerHandler: function(e, t) {
                    var n = this[0];
                    if (n)
                        return C.event.trigger(e, t, n, !0)
                }
            }),
            g.focusin || C.each({
                focus: "focusin",
                blur: "focusout"
            }, (function(e, t) {
                var n = function(e) {
                    C.event.simulate(t, e.target, C.event.fix(e))
                };
                C.event.special[t] = {
                    setup: function() {
                        var r = this.ownerDocument || this.document || this
                          , i = K.access(r, t);
                        i || r.addEventListener(e, n, !0),
                        K.access(r, t, (i || 0) + 1)
                    },
                    teardown: function() {
                        var r = this.ownerDocument || this.document || this
                          , i = K.access(r, t) - 1;
                        i ? K.access(r, t, i) : (r.removeEventListener(e, n, !0),
                        K.remove(r, t))
                    }
                }
            }
            ));
            var Et = r.location
              , St = {
                guid: Date.now()
            }
              , At = /\?/;
            C.parseXML = function(e) {
                var t;
                if (!e || "string" != typeof e)
                    return null;
                try {
                    t = (new r.DOMParser).parseFromString(e, "text/xml")
                } catch (e) {
                    t = void 0
                }
                return t && !t.getElementsByTagName("parsererror").length || C.error("Invalid XML: " + e),
                t
            }
            ;
            var Dt = /\[\]$/
              , Nt = /\r?\n/g
              , jt = /^(?:submit|button|image|reset|file)$/i
              , Lt = /^(?:input|select|textarea|keygen)/i;
            function Ot(e, t, n, r) {
                var i;
                if (Array.isArray(t))
                    C.each(t, (function(t, i) {
                        n || Dt.test(e) ? r(e, i) : Ot(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r)
                    }
                    ));
                else if (n || "object" !== T(t))
                    r(e, t);
                else
                    for (i in t)
                        Ot(e + "[" + i + "]", t[i], n, r)
            }
            C.param = function(e, t) {
                var n, r = [], i = function(e, t) {
                    var n = v(t) ? t() : t;
                    r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
                };
                if (null == e)
                    return "";
                if (Array.isArray(e) || e.jquery && !C.isPlainObject(e))
                    C.each(e, (function() {
                        i(this.name, this.value)
                    }
                    ));
                else
                    for (n in e)
                        Ot(n, e[n], t, i);
                return r.join("&")
            }
            ,
            C.fn.extend({
                serialize: function() {
                    return C.param(this.serializeArray())
                },
                serializeArray: function() {
                    return this.map((function() {
                        var e = C.prop(this, "elements");
                        return e ? C.makeArray(e) : this
                    }
                    )).filter((function() {
                        var e = this.type;
                        return this.name && !C(this).is(":disabled") && Lt.test(this.nodeName) && !jt.test(e) && (this.checked || !ge.test(e))
                    }
                    )).map((function(e, t) {
                        var n = C(this).val();
                        return null == n ? null : Array.isArray(n) ? C.map(n, (function(e) {
                            return {
                                name: t.name,
                                value: e.replace(Nt, "\r\n")
                            }
                        }
                        )) : {
                            name: t.name,
                            value: n.replace(Nt, "\r\n")
                        }
                    }
                    )).get()
                }
            });
            var qt = /%20/g
              , $t = /#.*$/
              , It = /([?&])_=[^&]*/
              , Mt = /^(.*?):[ \t]*([^\r\n]*)$/gm
              , Pt = /^(?:GET|HEAD)$/
              , Ht = /^\/\//
              , Rt = {}
              , Ft = {}
              , _t = "*/".concat("*")
              , zt = b.createElement("a");
            function Bt(e) {
                return function(t, n) {
                    "string" != typeof t && (n = t,
                    t = "*");
                    var r, i = 0, o = t.toLowerCase().match(H) || [];
                    if (v(n))
                        for (; r = o[i++]; )
                            "+" === r[0] ? (r = r.slice(1) || "*",
                            (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
                }
            }
            function Wt(e, t, n, r) {
                var i = {}
                  , o = e === Ft;
                function a(s) {
                    var l;
                    return i[s] = !0,
                    C.each(e[s] || [], (function(e, s) {
                        var u = s(t, n, r);
                        return "string" != typeof u || o || i[u] ? o ? !(l = u) : void 0 : (t.dataTypes.unshift(u),
                        a(u),
                        !1)
                    }
                    )),
                    l
                }
                return a(t.dataTypes[0]) || !i["*"] && a("*")
            }
            function Ut(e, t) {
                var n, r, i = C.ajaxSettings.flatOptions || {};
                for (n in t)
                    void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
                return r && C.extend(!0, e, r),
                e
            }
            zt.href = Et.href,
            C.extend({
                active: 0,
                lastModified: {},
                etag: {},
                ajaxSettings: {
                    url: Et.href,
                    type: "GET",
                    isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),
                    global: !0,
                    processData: !0,
                    async: !0,
                    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                    accepts: {
                        "*": _t,
                        text: "text/plain",
                        html: "text/html",
                        xml: "application/xml, text/xml",
                        json: "application/json, text/javascript"
                    },
                    contents: {
                        xml: /\bxml\b/,
                        html: /\bhtml/,
                        json: /\bjson\b/
                    },
                    responseFields: {
                        xml: "responseXML",
                        text: "responseText",
                        json: "responseJSON"
                    },
                    converters: {
                        "* text": String,
                        "text html": !0,
                        "text json": JSON.parse,
                        "text xml": C.parseXML
                    },
                    flatOptions: {
                        url: !0,
                        context: !0
                    }
                },
                ajaxSetup: function(e, t) {
                    return t ? Ut(Ut(e, C.ajaxSettings), t) : Ut(C.ajaxSettings, e)
                },
                ajaxPrefilter: Bt(Rt),
                ajaxTransport: Bt(Ft),
                ajax: function(e, t) {
                    "object" == typeof e && (t = e,
                    e = void 0),
                    t = t || {};
                    var n, i, o, a, s, l, u, c, f, d, p = C.ajaxSetup({}, t), h = p.context || p, m = p.context && (h.nodeType || h.jquery) ? C(h) : C.event, g = C.Deferred(), v = C.Callbacks("once memory"), y = p.statusCode || {}, x = {}, w = {}, T = "canceled", k = {
                        readyState: 0,
                        getResponseHeader: function(e) {
                            var t;
                            if (u) {
                                if (!a)
                                    for (a = {}; t = Mt.exec(o); )
                                        a[t[1].toLowerCase() + " "] = (a[t[1].toLowerCase() + " "] || []).concat(t[2]);
                                t = a[e.toLowerCase() + " "]
                            }
                            return null == t ? null : t.join(", ")
                        },
                        getAllResponseHeaders: function() {
                            return u ? o : null
                        },
                        setRequestHeader: function(e, t) {
                            return null == u && (e = w[e.toLowerCase()] = w[e.toLowerCase()] || e,
                            x[e] = t),
                            this
                        },
                        overrideMimeType: function(e) {
                            return null == u && (p.mimeType = e),
                            this
                        },
                        statusCode: function(e) {
                            var t;
                            if (e)
                                if (u)
                                    k.always(e[k.status]);
                                else
                                    for (t in e)
                                        y[t] = [y[t], e[t]];
                            return this
                        },
                        abort: function(e) {
                            var t = e || T;
                            return n && n.abort(t),
                            E(0, t),
                            this
                        }
                    };
                    if (g.promise(k),
                    p.url = ((e || p.url || Et.href) + "").replace(Ht, Et.protocol + "//"),
                    p.type = t.method || t.type || p.method || p.type,
                    p.dataTypes = (p.dataType || "*").toLowerCase().match(H) || [""],
                    null == p.crossDomain) {
                        l = b.createElement("a");
                        try {
                            l.href = p.url,
                            l.href = l.href,
                            p.crossDomain = zt.protocol + "//" + zt.host != l.protocol + "//" + l.host
                        } catch (e) {
                            p.crossDomain = !0
                        }
                    }
                    if (p.data && p.processData && "string" != typeof p.data && (p.data = C.param(p.data, p.traditional)),
                    Wt(Rt, p, t, k),
                    u)
                        return k;
                    for (f in (c = C.event && p.global) && 0 == C.active++ && C.event.trigger("ajaxStart"),
                    p.type = p.type.toUpperCase(),
                    p.hasContent = !Pt.test(p.type),
                    i = p.url.replace($t, ""),
                    p.hasContent ? p.data && p.processData && 0 === (p.contentType || "").indexOf("application/x-www-form-urlencoded") && (p.data = p.data.replace(qt, "+")) : (d = p.url.slice(i.length),
                    p.data && (p.processData || "string" == typeof p.data) && (i += (At.test(i) ? "&" : "?") + p.data,
                    delete p.data),
                    !1 === p.cache && (i = i.replace(It, "$1"),
                    d = (At.test(i) ? "&" : "?") + "_=" + St.guid++ + d),
                    p.url = i + d),
                    p.ifModified && (C.lastModified[i] && k.setRequestHeader("If-Modified-Since", C.lastModified[i]),
                    C.etag[i] && k.setRequestHeader("If-None-Match", C.etag[i])),
                    (p.data && p.hasContent && !1 !== p.contentType || t.contentType) && k.setRequestHeader("Content-Type", p.contentType),
                    k.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + _t + "; q=0.01" : "") : p.accepts["*"]),
                    p.headers)
                        k.setRequestHeader(f, p.headers[f]);
                    if (p.beforeSend && (!1 === p.beforeSend.call(h, k, p) || u))
                        return k.abort();
                    if (T = "abort",
                    v.add(p.complete),
                    k.done(p.success),
                    k.fail(p.error),
                    n = Wt(Ft, p, t, k)) {
                        if (k.readyState = 1,
                        c && m.trigger("ajaxSend", [k, p]),
                        u)
                            return k;
                        p.async && p.timeout > 0 && (s = r.setTimeout((function() {
                            k.abort("timeout")
                        }
                        ), p.timeout));
                        try {
                            u = !1,
                            n.send(x, E)
                        } catch (e) {
                            if (u)
                                throw e;
                            E(-1, e)
                        }
                    } else
                        E(-1, "No Transport");
                    function E(e, t, a, l) {
                        var f, d, b, x, w, T = t;
                        u || (u = !0,
                        s && r.clearTimeout(s),
                        n = void 0,
                        o = l || "",
                        k.readyState = e > 0 ? 4 : 0,
                        f = e >= 200 && e < 300 || 304 === e,
                        a && (x = function(e, t, n) {
                            for (var r, i, o, a, s = e.contents, l = e.dataTypes; "*" === l[0]; )
                                l.shift(),
                                void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
                            if (r)
                                for (i in s)
                                    if (s[i] && s[i].test(r)) {
                                        l.unshift(i);
                                        break
                                    }
                            if (l[0]in n)
                                o = l[0];
                            else {
                                for (i in n) {
                                    if (!l[0] || e.converters[i + " " + l[0]]) {
                                        o = i;
                                        break
                                    }
                                    a || (a = i)
                                }
                                o = o || a
                            }
                            if (o)
                                return o !== l[0] && l.unshift(o),
                                n[o]
                        }(p, k, a)),
                        !f && C.inArray("script", p.dataTypes) > -1 && (p.converters["text script"] = function() {}
                        ),
                        x = function(e, t, n, r) {
                            var i, o, a, s, l, u = {}, c = e.dataTypes.slice();
                            if (c[1])
                                for (a in e.converters)
                                    u[a.toLowerCase()] = e.converters[a];
                            for (o = c.shift(); o; )
                                if (e.responseFields[o] && (n[e.responseFields[o]] = t),
                                !l && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)),
                                l = o,
                                o = c.shift())
                                    if ("*" === o)
                                        o = l;
                                    else if ("*" !== l && l !== o) {
                                        if (!(a = u[l + " " + o] || u["* " + o]))
                                            for (i in u)
                                                if ((s = i.split(" "))[1] === o && (a = u[l + " " + s[0]] || u["* " + s[0]])) {
                                                    !0 === a ? a = u[i] : !0 !== u[i] && (o = s[0],
                                                    c.unshift(s[1]));
                                                    break
                                                }
                                        if (!0 !== a)
                                            if (a && e.throws)
                                                t = a(t);
                                            else
                                                try {
                                                    t = a(t)
                                                } catch (e) {
                                                    return {
                                                        state: "parsererror",
                                                        error: a ? e : "No conversion from " + l + " to " + o
                                                    }
                                                }
                                    }
                            return {
                                state: "success",
                                data: t
                            }
                        }(p, x, k, f),
                        f ? (p.ifModified && ((w = k.getResponseHeader("Last-Modified")) && (C.lastModified[i] = w),
                        (w = k.getResponseHeader("etag")) && (C.etag[i] = w)),
                        204 === e || "HEAD" === p.type ? T = "nocontent" : 304 === e ? T = "notmodified" : (T = x.state,
                        d = x.data,
                        f = !(b = x.error))) : (b = T,
                        !e && T || (T = "error",
                        e < 0 && (e = 0))),
                        k.status = e,
                        k.statusText = (t || T) + "",
                        f ? g.resolveWith(h, [d, T, k]) : g.rejectWith(h, [k, T, b]),
                        k.statusCode(y),
                        y = void 0,
                        c && m.trigger(f ? "ajaxSuccess" : "ajaxError", [k, p, f ? d : b]),
                        v.fireWith(h, [k, T]),
                        c && (m.trigger("ajaxComplete", [k, p]),
                        --C.active || C.event.trigger("ajaxStop")))
                    }
                    return k
                },
                getJSON: function(e, t, n) {
                    return C.get(e, t, n, "json")
                },
                getScript: function(e, t) {
                    return C.get(e, void 0, t, "script")
                }
            }),
            C.each(["get", "post"], (function(e, t) {
                C[t] = function(e, n, r, i) {
                    return v(n) && (i = i || r,
                    r = n,
                    n = void 0),
                    C.ajax(C.extend({
                        url: e,
                        type: t,
                        dataType: i,
                        data: n,
                        success: r
                    }, C.isPlainObject(e) && e))
                }
            }
            )),
            C.ajaxPrefilter((function(e) {
                var t;
                for (t in e.headers)
                    "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
            }
            )),
            C._evalUrl = function(e, t, n) {
                return C.ajax({
                    url: e,
                    type: "GET",
                    dataType: "script",
                    cache: !0,
                    async: !1,
                    global: !1,
                    converters: {
                        "text script": function() {}
                    },
                    dataFilter: function(e) {
                        C.globalEval(e, t, n)
                    }
                })
            }
            ,
            C.fn.extend({
                wrapAll: function(e) {
                    var t;
                    return this[0] && (v(e) && (e = e.call(this[0])),
                    t = C(e, this[0].ownerDocument).eq(0).clone(!0),
                    this[0].parentNode && t.insertBefore(this[0]),
                    t.map((function() {
                        for (var e = this; e.firstElementChild; )
                            e = e.firstElementChild;
                        return e
                    }
                    )).append(this)),
                    this
                },
                wrapInner: function(e) {
                    return v(e) ? this.each((function(t) {
                        C(this).wrapInner(e.call(this, t))
                    }
                    )) : this.each((function() {
                        var t = C(this)
                          , n = t.contents();
                        n.length ? n.wrapAll(e) : t.append(e)
                    }
                    ))
                },
                wrap: function(e) {
                    var t = v(e);
                    return this.each((function(n) {
                        C(this).wrapAll(t ? e.call(this, n) : e)
                    }
                    ))
                },
                unwrap: function(e) {
                    return this.parent(e).not("body").each((function() {
                        C(this).replaceWith(this.childNodes)
                    }
                    )),
                    this
                }
            }),
            C.expr.pseudos.hidden = function(e) {
                return !C.expr.pseudos.visible(e)
            }
            ,
            C.expr.pseudos.visible = function(e) {
                return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
            }
            ,
            C.ajaxSettings.xhr = function() {
                try {
                    return new r.XMLHttpRequest
                } catch (e) {}
            }
            ;
            var Xt = {
                0: 200,
                1223: 204
            }
              , Vt = C.ajaxSettings.xhr();
            g.cors = !!Vt && "withCredentials"in Vt,
            g.ajax = Vt = !!Vt,
            C.ajaxTransport((function(e) {
                var t, n;
                if (g.cors || Vt && !e.crossDomain)
                    return {
                        send: function(i, o) {
                            var a, s = e.xhr();
                            if (s.open(e.type, e.url, e.async, e.username, e.password),
                            e.xhrFields)
                                for (a in e.xhrFields)
                                    s[a] = e.xhrFields[a];
                            for (a in e.mimeType && s.overrideMimeType && s.overrideMimeType(e.mimeType),
                            e.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"),
                            i)
                                s.setRequestHeader(a, i[a]);
                            t = function(e) {
                                return function() {
                                    t && (t = n = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null,
                                    "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(Xt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? {
                                        binary: s.response
                                    } : {
                                        text: s.responseText
                                    }, s.getAllResponseHeaders()))
                                }
                            }
                            ,
                            s.onload = t(),
                            n = s.onerror = s.ontimeout = t("error"),
                            void 0 !== s.onabort ? s.onabort = n : s.onreadystatechange = function() {
                                4 === s.readyState && r.setTimeout((function() {
                                    t && n()
                                }
                                ))
                            }
                            ,
                            t = t("abort");
                            try {
                                s.send(e.hasContent && e.data || null)
                            } catch (e) {
                                if (t)
                                    throw e
                            }
                        },
                        abort: function() {
                            t && t()
                        }
                    }
            }
            )),
            C.ajaxPrefilter((function(e) {
                e.crossDomain && (e.contents.script = !1)
            }
            )),
            C.ajaxSetup({
                accepts: {
                    script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
                },
                contents: {
                    script: /\b(?:java|ecma)script\b/
                },
                converters: {
                    "text script": function(e) {
                        return C.globalEval(e),
                        e
                    }
                }
            }),
            C.ajaxPrefilter("script", (function(e) {
                void 0 === e.cache && (e.cache = !1),
                e.crossDomain && (e.type = "GET")
            }
            )),
            C.ajaxTransport("script", (function(e) {
                var t, n;
                if (e.crossDomain || e.scriptAttrs)
                    return {
                        send: function(r, i) {
                            t = C("<script>").attr(e.scriptAttrs || {}).prop({
                                charset: e.scriptCharset,
                                src: e.url
                            }).on("load error", n = function(e) {
                                t.remove(),
                                n = null,
                                e && i("error" === e.type ? 404 : 200, e.type)
                            }
                            ),
                            b.head.appendChild(t[0])
                        },
                        abort: function() {
                            n && n()
                        }
                    }
            }
            ));
            var Qt, Yt = [], Gt = /(=)\?(?=&|$)|\?\?/;
            C.ajaxSetup({
                jsonp: "callback",
                jsonpCallback: function() {
                    var e = Yt.pop() || C.expando + "_" + St.guid++;
                    return this[e] = !0,
                    e
                }
            }),
            C.ajaxPrefilter("json jsonp", (function(e, t, n) {
                var i, o, a, s = !1 !== e.jsonp && (Gt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Gt.test(e.data) && "data");
                if (s || "jsonp" === e.dataTypes[0])
                    return i = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback,
                    s ? e[s] = e[s].replace(Gt, "$1" + i) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + i),
                    e.converters["script json"] = function() {
                        return a || C.error(i + " was not called"),
                        a[0]
                    }
                    ,
                    e.dataTypes[0] = "json",
                    o = r[i],
                    r[i] = function() {
                        a = arguments
                    }
                    ,
                    n.always((function() {
                        void 0 === o ? C(r).removeProp(i) : r[i] = o,
                        e[i] && (e.jsonpCallback = t.jsonpCallback,
                        Yt.push(i)),
                        a && v(o) && o(a[0]),
                        a = o = void 0
                    }
                    )),
                    "script"
            }
            )),
            g.createHTMLDocument = ((Qt = b.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>",
            2 === Qt.childNodes.length),
            C.parseHTML = function(e, t, n) {
                return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t,
                t = !1),
                t || (g.createHTMLDocument ? ((r = (t = b.implementation.createHTMLDocument("")).createElement("base")).href = b.location.href,
                t.head.appendChild(r)) : t = b),
                o = !n && [],
                (i = L.exec(e)) ? [t.createElement(i[1])] : (i = ke([e], t, o),
                o && o.length && C(o).remove(),
                C.merge([], i.childNodes)));
                var r, i, o
            }
            ,
            C.fn.load = function(e, t, n) {
                var r, i, o, a = this, s = e.indexOf(" ");
                return s > -1 && (r = bt(e.slice(s)),
                e = e.slice(0, s)),
                v(t) ? (n = t,
                t = void 0) : t && "object" == typeof t && (i = "POST"),
                a.length > 0 && C.ajax({
                    url: e,
                    type: i || "GET",
                    dataType: "html",
                    data: t
                }).done((function(e) {
                    o = arguments,
                    a.html(r ? C("<div>").append(C.parseHTML(e)).find(r) : e)
                }
                )).always(n && function(e, t) {
                    a.each((function() {
                        n.apply(this, o || [e.responseText, t, e])
                    }
                    ))
                }
                ),
                this
            }
            ,
            C.expr.pseudos.animated = function(e) {
                return C.grep(C.timers, (function(t) {
                    return e === t.elem
                }
                )).length
            }
            ,
            C.offset = {
                setOffset: function(e, t, n) {
                    var r, i, o, a, s, l, u = C.css(e, "position"), c = C(e), f = {};
                    "static" === u && (e.style.position = "relative"),
                    s = c.offset(),
                    o = C.css(e, "top"),
                    l = C.css(e, "left"),
                    ("absolute" === u || "fixed" === u) && (o + l).indexOf("auto") > -1 ? (a = (r = c.position()).top,
                    i = r.left) : (a = parseFloat(o) || 0,
                    i = parseFloat(l) || 0),
                    v(t) && (t = t.call(e, n, C.extend({}, s))),
                    null != t.top && (f.top = t.top - s.top + a),
                    null != t.left && (f.left = t.left - s.left + i),
                    "using"in t ? t.using.call(e, f) : ("number" == typeof f.top && (f.top += "px"),
                    "number" == typeof f.left && (f.left += "px"),
                    c.css(f))
                }
            },
            C.fn.extend({
                offset: function(e) {
                    if (arguments.length)
                        return void 0 === e ? this : this.each((function(t) {
                            C.offset.setOffset(this, e, t)
                        }
                        ));
                    var t, n, r = this[0];
                    return r ? r.getClientRects().length ? (t = r.getBoundingClientRect(),
                    n = r.ownerDocument.defaultView,
                    {
                        top: t.top + n.pageYOffset,
                        left: t.left + n.pageXOffset
                    }) : {
                        top: 0,
                        left: 0
                    } : void 0
                },
                position: function() {
                    if (this[0]) {
                        var e, t, n, r = this[0], i = {
                            top: 0,
                            left: 0
                        };
                        if ("fixed" === C.css(r, "position"))
                            t = r.getBoundingClientRect();
                        else {
                            for (t = this.offset(),
                            n = r.ownerDocument,
                            e = r.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === C.css(e, "position"); )
                                e = e.parentNode;
                            e && e !== r && 1 === e.nodeType && ((i = C(e).offset()).top += C.css(e, "borderTopWidth", !0),
                            i.left += C.css(e, "borderLeftWidth", !0))
                        }
                        return {
                            top: t.top - i.top - C.css(r, "marginTop", !0),
                            left: t.left - i.left - C.css(r, "marginLeft", !0)
                        }
                    }
                },
                offsetParent: function() {
                    return this.map((function() {
                        for (var e = this.offsetParent; e && "static" === C.css(e, "position"); )
                            e = e.offsetParent;
                        return e || ae
                    }
                    ))
                }
            }),
            C.each({
                scrollLeft: "pageXOffset",
                scrollTop: "pageYOffset"
            }, (function(e, t) {
                var n = "pageYOffset" === t;
                C.fn[e] = function(r) {
                    return U(this, (function(e, r, i) {
                        var o;
                        if (y(e) ? o = e : 9 === e.nodeType && (o = e.defaultView),
                        void 0 === i)
                            return o ? o[t] : e[r];
                        o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : e[r] = i
                    }
                    ), e, r, arguments.length)
                }
            }
            )),
            C.each(["top", "left"], (function(e, t) {
                C.cssHooks[t] = Ve(g.pixelPosition, (function(e, n) {
                    if (n)
                        return n = Xe(e, t),
                        ze.test(n) ? C(e).position()[t] + "px" : n
                }
                ))
            }
            )),
            C.each({
                Height: "height",
                Width: "width"
            }, (function(e, t) {
                C.each({
                    padding: "inner" + e,
                    content: t,
                    "": "outer" + e
                }, (function(n, r) {
                    C.fn[r] = function(i, o) {
                        var a = arguments.length && (n || "boolean" != typeof i)
                          , s = n || (!0 === i || !0 === o ? "margin" : "border");
                        return U(this, (function(t, n, i) {
                            var o;
                            return y(t) ? 0 === r.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (o = t.documentElement,
                            Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) : void 0 === i ? C.css(t, n, s) : C.style(t, n, i, s)
                        }
                        ), t, a ? i : void 0, a)
                    }
                }
                ))
            }
            )),
            C.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], (function(e, t) {
                C.fn[t] = function(e) {
                    return this.on(t, e)
                }
            }
            )),
            C.fn.extend({
                bind: function(e, t, n) {
                    return this.on(e, null, t, n)
                },
                unbind: function(e, t) {
                    return this.off(e, null, t)
                },
                delegate: function(e, t, n, r) {
                    return this.on(t, e, n, r)
                },
                undelegate: function(e, t, n) {
                    return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
                },
                hover: function(e, t) {
                    return this.mouseenter(e).mouseleave(t || e)
                }
            }),
            C.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), (function(e, t) {
                C.fn[t] = function(e, n) {
                    return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
                }
            }
            ));
            var Jt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
            C.proxy = function(e, t) {
                var n, r, i;
                if ("string" == typeof t && (n = e[t],
                t = e,
                e = n),
                v(e))
                    return r = s.call(arguments, 2),
                    (i = function() {
                        return e.apply(t || this, r.concat(s.call(arguments)))
                    }
                    ).guid = e.guid = e.guid || C.guid++,
                    i
            }
            ,
            C.holdReady = function(e) {
                e ? C.readyWait++ : C.ready(!0)
            }
            ,
            C.isArray = Array.isArray,
            C.parseJSON = JSON.parse,
            C.nodeName = j,
            C.isFunction = v,
            C.isWindow = y,
            C.camelCase = Y,
            C.type = T,
            C.now = Date.now,
            C.isNumeric = function(e) {
                var t = C.type(e);
                return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
            }
            ,
            C.trim = function(e) {
                return null == e ? "" : (e + "").replace(Jt, "")
            }
            ,
            void 0 === (n = function() {
                return C
            }
            .apply(t, [])) || (e.exports = n);
            var Kt = r.jQuery
              , Zt = r.$;
            return C.noConflict = function(e) {
                return r.$ === C && (r.$ = Zt),
                e && r.jQuery === C && (r.jQuery = Kt),
                C
            }
            ,
            void 0 === i && (r.jQuery = r.$ = C),
            C
        }
        ))
    }
})
window.nnn(127)
window.nnn(732)
// window.nnn(58)
// console.log(window.sign(Date['parse'](new Date)['toString']()))
function get_sign(){
    t = Date['parse'](new Date)['toString']()
    dic = {
        m:window.btoa(t ),
        t:t,
    }
    return dic
}

var x = get_sign()
console.log(x)